为了账号安全,请及时绑定邮箱和手机立即绑定

DateTime vs DateTimeOffset

DateTime vs DateTimeOffset

慕沐林林 2019-06-14 17:12:03
DateTime vs DateTimeOffset目前,我们有一种以时区感知方式处理.NET DateTimes的标准方法:每当我们生成一个DateTime我们在世界协调时做这件事(例如使用DateTime.UtcNow),每当我们显示一个时,我们就从UTC转换回用户的本地时间。很好,但我一直在读DateTimeOffset以及它如何捕获对象本身中的本地和UTC时间。所以问题是,使用DateTimeOffset我们已经在做什么了?
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

来自微软:

DateTimeOffset值的这些用途比DateTime值更常见。因此,应该将DateTimeOffset视为应用程序开发的默认日期和时间类型。

资料来源:日期时间、DateTimeOffset、TimePAN和TimeZoneInfo之间的选择MSDN

我们用DateTimeOffset对于几乎所有的东西,我们的应用程序都处理特定的时间点(例如,创建/更新记录时)。作为附带说明,我们使用DATETIMEOFFSET在SQLServer 2008中也是如此。

我明白了DateTime当您只想处理日期、时间或一般意义上的任何一种时,都是有用的。例如,如果您有一个闹钟,您想每天早上7点响,您可以将它存储在DateTime利用DateTimeKindUnspecified因为你想让它在早上7点爆炸,不管DST是怎么回事。但是,如果要表示警报事件的历史记录,请使用DateTimeOffset.

当使用DateTimeOffsetDateTime特别是在类型之间分配和比较时。而且,只有比较DateTime实例是相同的DateTimeKind因为DateTime比较时忽略时区偏移量。


查看完整回答
反对 回复 2019-06-14
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

datetime只能存储两个不同的时间,即本地时间和UTC。这个仁爱属性指示哪个。

DateTimeOffset通过能够存储来自世界任何地方的时间来扩展这一点。它还存储偏移量在当地时间和协调世界时之间。注意,除非向类添加一个额外的成员来存储UTC偏移量,DateTime是如何做到这一点的。或者只和UTC合作过。这本身就是个好主意。


查看完整回答
反对 回复 2019-06-14
  • 3 回答
  • 0 关注
  • 1214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信