在最近一次关于C#的求职面试中,有人问我以下问题:
> c#中LocalTime和UniversalTime之间的区别是什么?我应该何时使用它们?
检查文档后,我找到了LocalTime的相应定义:
The local time is equal to the Coordinated Universal Time (UTC) time
plus the UTC offset.
以下是UniversalTime的一个:
The Coordinated Universal Time (UTC) is equal to the local time minus
the UTC offset.
所以,就我看来,UniversalTime与LocalTime相反,但它们都做同样的事情并得到相同的结果.
那么,我应该何时使用每一个?有什么真正的区别吗?
解决方法
UTC是在一些任意选择的区域(格林威治)的时间,由于地球轨道不规则性调整了几秒钟.
当地时间是地球上特定时间的时间.例如,如果UTC时间是0:00并且您在开罗,您将观察到2:00,因为开罗的时区前方有2小时的偏移(通常表示为“UTC 2”).
对于这个例子:
The local time is equal to the Coordinated Universal Time (UTC) time
plus the UTC offset.
当地时间是0:00 2h = 2:00.
The Coordinated Universal Time (UTC) is equal to the local time minus the UTC offset.
UTC将是2:00 – 2h = 0:00.
在问题的背景下,面试官可能正在寻求一个答案,你将服务器端的时间始终作为UTC存储,并且只在将其显示给用户时将其转换为用户的本地时间.