什么时候你会喜欢DateTime Over DateTimeOffset

时间:2008-11-05 08:35:58

标签: .net datetime datetimeoffset

几个月前,我被引入了新的DateTimeOffset类型,很高兴DateTime关于时区的缺陷最终得到了解决。

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

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

参考:DateTimeOffset: A New DateTime Structure in .NET 3.5 by Justin Van Patten

3 个答案:

答案 0 :(得分:47)

有时候你真的只是希望及时代表“本地”(时区不知道)的日期和时间而不是即时。说实话,只表示一个时间更有用 - 例如“不管时区如何,都会在上午8点叫醒我” - 但日期和时间也很有用。

我同意,对于绝大多数情况,DateTimeOffset更适合。它确实让我感到奇怪的是,虽然没有DateTimeTimeZone结构同时包含瞬间和它的时区......但偏移量实际上并不能为您提供所需的所有信息。 (例如,给定DateTimeOffset,您不知道24小时后的时间是什么,因为您不知道DST何时可能会启动。)

如果你想要那种结构,我有一个very crude implementation in another answer。我相信它可以很容易地改进:)

答案 1 :(得分:3)

嗯,一个明显的答案是,当你需要支持没有附带SP的客户端时(实际上它不是3.5 - 它是2.0 SP1,同时发货)。

答案 2 :(得分:0)

尽管我不希望在DateTimeOffset上使用DateTime,但请注意,有时您需要这样做,因为MS .Net不支持DateTimeOffset作为DataColumn.DataType属性DataColumn.DataType Property,即使SQL datetimeoffset自SQL2008。

我自己在使用ReadXml读取(XmlReadMode.InferTypedSchema)XML导出的DataSet的DateTimeOffset值时遇到问题;它将其读取为DateTime并在我尝试将其合并到DateTimeOffset列时崩溃