什么时候你会喜欢DateTime Over DateTimeOffset

问题描述 投票:47回答:3

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

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

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

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

.net datetime datetimeoffset
3个回答
47
投票

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

我同意,绝大多数情况下,DateTimeOffset更适合。它确实让我感到奇怪,因为没有一个DateTimeTimeZone结构,它同时具有瞬间和它的时区......一个偏移实际上并没有为你提供所需的所有信息。 (例如,给定一个DateTimeOffset,你不知道24小时后会是什么时间,因为你不知道DST什么时候可以开始。)

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


3
投票

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


0
投票

虽然我不希望在DateTimeOffset上使用DateTime,但请注意,有时您需要,因为MS .Net不支持DateTimeOffset作为DataColumn.DataType属性DataColumn.DataType Property,即使SQL datetimeoffset自SQL2008以来已经存在。

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

© www.soinside.com 2019 - 2024. All rights reserved.