LocalTime 和 UniversalTime c# 之间的区别

Difference between LocalTime and UniversalTime c#

在最近一次关于 C# 的工作面试中,有人问了我以下问题:

查看文档后,我找到了 LocalTime 的以下定义:

The local time is equal to the Coordinated Universal Time (UTC) time plus the UTC offset.

下一个用于通用时间:

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,并且仅在将其显示给用户时将其转换为用户的本地时间。

顺便说一句,这不是特定于 C# 的。如果您对更多细节感兴趣,wikipedia 有很好的解释。