在最近一次有关C#的求职面试中,有人问我以下问题:
在检查文档后,我找到了LocalTime的下一个定义:
本地时间等于协调世界时(UTC)时间 加上UTC偏移。
以下是UniversalTime:
协调世界时(UTC)等于当地时间减去 UTC偏移。
所以,就我看来,UniversalTime与LocalTime相反,但它们都做同样的事情并得到相同的结果。
那么,我应该何时使用每一个?有什么真正的区别吗?
答案 0 :(得分:7)
UTC是在一些任意选择的区域(格林威治)的时间,由于地球轨道不规则而调整了几秒钟。
当地时间是地球上特定时间的时间。例如,如果UTC时间是0:00并且您在开罗,您将观察到2:00,因为开罗的时区有2小时的偏移(通常表示为" UTC + 2" )。
对于那个例子:
本地时间等于协调世界时(UTC)时间 加上UTC偏移。
当地时间为0:00 + 2h = 2:00。
协调世界时(UTC)等于本地时间减去UTC偏移量。
UTC将是2:00 - 2h = 0:00。
在问题的背景下,面试官可能正在寻求一个答案,你将服务器端的时间始终作为UTC存储,并且只在将其显示给用户时将其转换为用户的本地时间。
这顺便说一下并不是特定于C#。如果您对更多详细信息感兴趣,wikipedia有一个非常好的解释。