几个月前,我被介绍到新的DateTimeOffset
类型,很高兴DateTime
关于时区的缺陷终于得到了解决。
但是,我想知道使用这种新类型是否有任何开销或问题。
我在一个多语言环境的Web应用程序上工作。有没有人知道任何可以影响我的东西,只是在我的所有日期/时间工作中使用它?这里有滥用的窗口吗?
参考:DateTimeOffset: A New DateTime Structure in .NET 3.5 by Justin Van Patten
有时你真的只想表示一个“本地”(时区不知道)的日期和时间而不是瞬间。说实话,只表示一个时间更有用 - 例如“不管时区如何,都会在上午8点叫醒我” - 但日期和时间也很有用。
我同意,绝大多数情况下,DateTimeOffset
更适合。它确实让我感到奇怪,因为没有一个DateTimeTimeZone
结构,它同时具有瞬间和它的时区......一个偏移实际上并没有为你提供所需的所有信息。 (例如,给定一个DateTimeOffset
,你不知道24小时后会是什么时间,因为你不知道DST什么时候可以开始。)
如果你想要那种结构,我有一个very crude implementation in another answer。我相信它可以很容易地改进:)
好吧,一个明显的答案就是当你需要支持没有它的SP的客户端时(它实际上不是3.5 - 它是2.0 SP1,同时发货)。
虽然我不希望在DateTimeOffset上使用DateTime,但请注意,有时您需要,因为MS .Net不支持DateTimeOffset作为DataColumn.DataType属性DataColumn.DataType Property,即使SQL datetimeoffset自SQL2008以来已经存在。
我自己在使用ReadXml
读取(XmlReadMode.InferTypedSchema
)XML导出数据集的DateTimeOffset值时遇到了问题。它将它读作DateTime并在我尝试将其合并到DateTimeOffset列时崩溃