我希望能够将这个问题及其答案作为处理夏令时的权威指南,特别是处理实际的变更问题.
如果您有任何要添加的内容,请执行此操作
许多系统依赖于保持准确的时间,问题在于由于夏令时改变时间 - 向前或向后移动时钟.
例如,在订单获取系统中有一个业务规则取决于订单的时间 - 如果时钟发生变化,规则可能不那么明确.如何保持订单的时间?当然有无数的场景 - 这只是一个说明性的场景.
同样重要的是,如果不是这样的话:
我会对编程,操作系统,数据持久性和该问题的其他相关方面感兴趣.
一般答案很好,但我也希望看到细节,特别是如果它们只在一个平台上可用.
目前,我们有一种以TimeZone感知方式处理.net DateTimes的标准方法:每当我们生成一个DateTimeUTC时(例如使用DateTime.UtcNow),每当我们显示一个时,我们就会从UTC转换回用户的本地时间.
这工作正常,但我一直在阅读DateTimeOffset它如何捕获对象本身的本地和UTC时间.所以问题是,使用DateTimeOffsetvs我们已经做的事情有什么好处?
我正在尝试创建一个单元测试来测试机器上时区变化的情况,因为它已被错误地设置然后更正.
在测试中,我需要能够在非本地时区创建DateTime对象,以确保运行测试的人员无论身在何处都能成功完成.
从我从DateTime构造函数中可以看到,我可以将TimeZone设置为本地时区,UTC时区或未指定.
如何使用PST等特定时区创建DateTime?
我通常有一个"拦截器",它在从/向数据库读取/写入之前进行DateTime转换(从UTC到本地时间,从本地时间到UTC),因此我可以DateTime.Now在整个系统中使用(派生和比较)而不用担心关于时区.
关于计算机之间的序列化和移动数据,没有必要打扰,因为日期时间始终是UTC.
我应该继续以UTC格式存储我的日期(SQL 2008 - datetime)还是应该使用DateTimeOffset(SQL 2008-datetimeoffset)存储它?
数据库中的UTC日期(日期时间类型)已经工作并且已知很长时间了,为什么要更改它?有什么好处?
我已经看过像这样的文章了,但我并不是100%相信.有什么想法吗?
a DateTime和DateTimeOffset对象有什么区别?
什么时候应该使用每一个?
在可能更改服务器区域的Web应用程序中,存储日期和时间.哪一个更好,还是有其他建议?
任何人都可以解释C#.NET中System.DateTime和System.DateTimeOffset之间的区别吗?哪个最适合与来自不同时区的用户构建Web应用程序?