只要我一直在使用.NET,我就一直在.NET&中存储日期和时间数据。 SQL Server DateTime
数据类型。我最近意识到.NET和Linux中存在DateTimeOffset
类型。 SQL Server。
DateTimeOffset
类型现在应该成为我的默认数据类型,用于处理日期和存储日期吗?
如果没有,我何时会使用另一个?
答案 0 :(得分:3)
<强>日期时间强>
在我的情况下,我使用Datetime因为它更容易,并且自从我开始编程以来我一直在使用它。
从.NET之外的来源(例如SQL数据库)中检索日期和时间信息。通常,这些源以与DateTime结构兼容的简单格式存储日期和时间信息
执行日期和时间算术,但关注一般结果。例如,在对特定日期和时间增加六个月的附加操作中,结果是否针对夏令时进行调整通常并不重要
<强> DateTimeOffest 强>
DateTimeOffset结构表示日期和时间值,以及指示该值与UTC的差异程度的偏移量。因此,该值始终明确地标识单个时间点。
DateTimeOffset类型包括DateTime类型的所有功能以及时区感知。这使其适用于执行以下操作的应用程序:
独特且明确地识别单个时间点。 DateTimeOffset类型可用于明确定义“now”的含义,记录事务时间,记录系统或应用程序事件的时间,以及记录文件创建和修改时间
执行一般日期和时间算术
保留多个相关时间,只要这些时间存储为两个单独的值或两个结构成员
使用适合您的需求。在我的情况下,我一直在使用DateTime,它根本没有给我一个问题但是如果你喜欢去OffsetDateTime那么。