什么时候你会喜欢DateTime Over DateTimeOffset

Ome*_*ten 48 .net datetime datetimeoffset

几个月前,我被介绍到新型DateTimeOffset,很高兴DateTime关于时区的缺陷终于得到了解决.

但是,我想知道使用这种新类型是否有任何开销或问题.

我在一个多语言环境的Web应用程序上工作.有没有人知道任何可以影响我的东西,只是在我的所有日​​期/时间工作中使用它?这里有滥用的窗口吗?

参考:DateTimeOffset:Justin Van Patten在.NET 3.5中的一个新的DateTime结构

Jon*_*eet 48

有时你真的只想表示一个"本地"(时区不知道)的日期和时间而不是瞬间.说实话,只表示一个时间更有用 - 例如"不管时区如何,"在早上8点叫醒我" - 但日期和时间也可能有用.

我同意,对绝大多数情况来说,DateTimeOffset更合适.它确实让我觉得奇怪的是,没有一个DateTimeTimeZone结构既有瞬间又有时区......虽然偏移实际上并没有给你所需的所有信息.(例如,给定a DateTimeOffset,你不知道24小时后会是什么时间,因为你不知道DST什么时候可以开始.)

如果你想要那种结构,我在另一个答案中有一个非常粗略的实现.我相信它可以很容易地改进:)

  • @Ben:你正在考虑*时刻*.并非一切都是那样的.例如,"我的生日"是每年的6月19日 - 过去,现在和未来.或者"2000年的第一天",在每个时区的不同时刻开始.或者我闹钟的"早上6点".基本上值得确保你知道你真正代表什么样的东西. (6认同)
  • 您始终可以用UTC表示您的时间,并在需要时转换为特定的时区... (3认同)
  • Omer:但我发现,你经常想保留时区信息.是的,通常你可以只使用UTC时间,但对于周期性事件等,你也需要知道时区. (2认同)