“DateTime”和“DateTimeOffset”之间的区别[重复]

Posted

技术标签:

【中文标题】“DateTime”和“DateTimeOffset”之间的区别[重复]【英文标题】:Difference between 'DateTime' and 'DateTimeOffset' [duplicate] 【发布时间】:2012-02-22 19:04:28 【问题描述】:

DateTimeDateTimeOffset 对象之间有什么区别?

我们什么时候应该使用每一个?

在可能更改服务器区域、存储日期和时间的网络应用程序中。哪个更好,或者有其他建议吗?

【问题讨论】:

另见this answer 【参考方案1】:

DateTimeOffset 表示时间点,通常表示为日期和时间,相对于协调世界时 (UTC),它提供比 DateTime 结构更大程度的时区感知。看这里-http://msdn.microsoft.com/en-us/library/bb546101.aspx。

【讨论】:

非常感谢。有帮助 :D 我不明白为什么有些人会否决我的简单问题!!!我是新人,我应该学习更多,也应该问我的问题! 它唯一的“时区感知”程度是它存储特定时刻的UTC偏移量。它没有其他关于时区的知识,包括创建值的时区,所以它唯一真正的用途是历史数据。它对其他任何东西都毫无用处。 @Suncat2000,这个偏移量让一切变得不同! (它带来了“时区意识”)。当您拍照时,您的相机会为其分配当地时间(例如“日期时间”)。如果它会保存相当于“DateTimeOffset”,那么在旅行或夏令时更改时,回答“我是在上午 9:00 还是上午 10:00 制作这张照片”时不会有问题。一个错误的建筑决策给所有关心时间的摄影师带来了麻烦。这同样适用于 IT 系统中的所有 DateTime 字段。 @AndrzejMartyna 这不是时区意识。它只是与 UTC 的偏移量,它几乎不会告诉您任何信息。除了 datetime 值来自创建时的时区之外,您无法可靠地确定有关时区的任何内容。一文不值。要么严格遵守 UTC 并避免混淆,要么存储时区标识符,以便您可以执行有意义的转换。 DATETIMEOFFSET 毫无价值。 @Suncat2000,部分同意。我认为这一切都与开发人员遵守项目中设置的规则有关。如果您使用 DateTime,则取决于开发人员当前的心情。愚弄 DateTimeOffset 有点困难。解决方案可以是实现您的课程并完全停止使用 DateTime (正如您建议始终使用两个字段 - 顺便说一句。您经常看到这种方法吗?;)。【参考方案2】:

DateTimeOffset 克服了 DateTime 的缺点。它表示为相对于协调世界时 (UTC) 的日期和时间。 例如:

如果您没有参考点,那么 2013 年 4 月 18 日上午 11:00:00 绝对没有任何意义。那可能是世界上任何地方的上午 11:00:00。 DateTimeOffset 包含有关您正在处理的时区的信息,这使世界变得与众不同!

更多详情must read once

【讨论】:

唯一的区别是它存储 DateTime 表示的特定时刻的 UTC 偏移量。它存储实际时区,所以基本上你能做的就是在其相对本地时间和 UTC 之间进行转换。在某些情况下很有帮助,但信息非常薄弱,否则。 DateTimeOffset 不是时区感知的 DateTime 类。

以上是关于“DateTime”和“DateTimeOffset”之间的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

pd.datetime( )和pd.to_datetime( )

datetime处理日期和时间

datetime处理日期和时间

datetime处理日期和时间

DateTime 和 DateTime2 之间的区别 [重复]

datetime处理日期和时间