C# DateTime.Ticks属性值
DateTime.Now.Ticks的值不应该与DateTime.UtcNow.Ticks相同吗?我检查了它们的值,发现差异代表我当前时区与UTC的偏移量。我在这里遗漏了什么?因为时区不同而不同。因为时区不同而不同。这是对象设计的一部分 在其他库和语言中,例如JavaScript的日期类型,该值绑定到UTC,并且通常使用1970-01-01的历元 但是在.NET中,Ticks值与年、月、日和其他属性所基于的参照系相关。它使用0001-01-01的历元 在DateTime中,有一个名为Kind的属性: 如果种类是DateTimeKind.Utc,那么您知道该值与Utc相关。 如果种类是DateTimeKind.Local,那么您知道该值与本地时区相关。 如果种类为DateTimeKind.Unspecified,则您不知道所使用的时区引用。你只需要有一个日期和时间。 您可以将DateTime.UtcNow.Ticks和DateTime.Now.Ticks之间的差异作为当前时区偏移量,因为DateTime.Now具有本地种类,而DateTime.UtcNow具有Utc种类。因此DateTime.Now的刻度基于本地时区,而DateTime.UtcNow的刻度基于UTC DateTimeOffset类型可用于解决此问题。刻度仍相对于显示的值,但偏移量可用于始终将这些刻度调整回UTC参考系 如果您不喜欢这种情况(许多人不喜欢),另一种选择是使用库中的类型C# DateTime.Ticks属性值,c#,datetime,timezone,C#,Datetime,Timezone,DateTime.Now.Ticks的值不应该与DateTime.UtcNow.Ticks相同吗?我检查了它们的值,发现差异代表我当前时区与UTC的偏移量。我在这里遗漏了什么?因为时区不同而不同。因为时区不同而不同。这是对象设计的一部分 在其他库和语言中,例如JavaScript的日期类型,该值绑定到UTC,并且通常使用1970-01-01的历元 但是在.NET中,Ticks值与年、月、日和其他属性所基于的参照系相关。它使用0001-01-01的历元 在DateTime中,有一个名为Kind的属
顺便说一下,我将更详细地介绍这些信息,并将其与我的Pluralsight课程中的其他编程语言进行比较 这是对象设计的一部分 在其他库和语言中,例如JavaScript的日期类型,该值绑定到UTC,并且通常使用1970-01-01的历元 但是在.NET中,Ticks值与年、月、日和其他属性所基于的参照系相关。它使用0001-01-01的历元 在DateTime中,有一个名为Kind的属性: 如果种类是DateTimeKind.Utc,那么您知道该值与Utc相关。 如果种类是DateTimeKind.Local,那么您知道该值与本地时区相关。 如果种类为DateTimeKind.Unspecified,则您不知道所使用的时区引用。你只需要有一个日期和时间。 您可以将DateTime.UtcNow.Ticks和DateTime.Now.Ticks之间的差异作为当前时区偏移量,因为DateTime.Now具有本地种类,而DateTime.UtcNow具有Utc种类。因此DateTime.Now的刻度基于本地时区,而DateTime.UtcNow的刻度基于UTC DateTimeOffset类型可用于解决此问题。刻度仍相对于显示的值,但偏移量可用于始终将这些刻度调整回UTC参考系 如果您不喜欢这种情况(许多人不喜欢),另一种选择是使用库中的类型
顺便说一下,我将更详细地介绍这些信息,并将其与我的Pluralsight课程中的其他编程语言进行比较 你为什么期望它们是一样的?日期/时间是不同的-因此它们在刻度中的表示是不同的。为什么您希望它们是相同的?日期/时间不同-因此它们在刻度中的表示方式不同。