我希望能够将这个问题及其答案作为处理夏令时的权威指南,特别是处理实际的变更问题.
如果您有任何要添加的内容,请执行此操作
许多系统依赖于保持准确的时间,问题在于由于夏令时改变时间 - 向前或向后移动时钟.
例如,在订单获取系统中有一个业务规则取决于订单的时间 - 如果时钟发生变化,规则可能不那么明确.如何保持订单的时间?当然有无数的场景 - 这只是一个说明性的场景.
同样重要的是,如果不是这样的话:
我会对编程,操作系统,数据持久性和该问题的其他相关方面感兴趣.
一般答案很好,但我也希望看到细节,特别是如果它们只在一个平台上可用.
目前,我们有一种以TimeZone感知方式处理.net DateTimes的标准方法:每当我们生成一个DateTimeUTC时(例如使用DateTime.UtcNow),每当我们显示一个时,我们就会从UTC转换回用户的本地时间.
这工作正常,但我一直在阅读DateTimeOffset它如何捕获对象本身的本地和UTC时间.所以问题是,使用DateTimeOffsetvs我们已经做的事情有什么好处?
从服务器我得到这种格式的datetime变量:6/29/2011 4:52:48 PM它是UTC时间.我想使用JavaScript将其转换为当前用户的浏览器时间.
如何使用JavaScript或jQuery完成此操作?
我将特定时区的日期时间作为字符串,我想将其转换为本地时间.但是,我不知道如何在Date对象中设置时区.
例如,Feb 28 2013 7:00 PM ET,我可以
var mydate = new Date();
mydate.setFullYear(2013);
mydate.setMonth(02);
mydate.setDate(28);
mydate.setHours(7);
mydate.setMinutes(00);
Run Code Online (Sandbox Code Playgroud)
据我所知,我可以设置UTC时间或本地时间.但是,我如何在另一个时区设置时间?
我试图使用添加/减去UTC的偏移量,但我不知道如何应对夏令时.我不确定我是否正朝着正确的方向前进.
如何在javascript中将时间从不同的时区转换为当地时间?
我在我的数据库中存储事件.我有'开始'和'结束'日期时间,'ticket_start'和'tickets_end'(用于门票销售实际开始/结束时 - 而不是实际事件的开始/结束).
到目前为止,我已经构建了一些方法来完成所有有趣的事情,例如在保存之前将日期/时间转换为GMT,然后返回到各自的时区进行显示.
我将时区存储在varchar字段中,其值为"America/New_York".
但是 - 现在我需要开始处理,如果用户想要允许重复事件.我以前做过,并没有那么重要,但从来没有涉及多个时区.
起初,我认为这没什么大不了的,但后来意识到 - 如果最初的开始日期是7月(例如),并且它每个月重复一年,在某些时候,夏令时将会成功因此,GMT的转换将以不同的方式改变时间.一个月,当转换为12:00时,它会将其更改为-5,然后,由于DST,它会将其更改为-4.
我目前的想法是,我将存储一个'dst'minitint(1),以确定是否在DST期间输入了开始/结束日期,然后在必要时制作一个方法将时间改变一小时.
但是 - 想想我会在这里问这里或许这是一个"正常",或者是一件我想不到的简单事情.
(cakephp 2.4.x)
我正在设计一个调度Web应用程序.我希望用户可以在几个不同的时区和区域设置中添加事件.挑战是正确呈现这些事件.
因此,作为一个例子:
如果用户在EST时区并且正在查看由另一个用户在PST中添加的网络研讨会事件,我想将事件的实际PST时间转换为查看者的本地时间.因此,如果事件安排在太平洋标准时间下午2点,那么它应显示为美国东部时间下午5点.
我还要小心,如果有数千个事件可能需要从实际事件时间转换到查看者的本地时间,性能不会受到影响.
所有的想法和意见都表示赞赏.
TIA
我了解最佳做法是将UTC日期/时间存储在我们的数据库中,并以当地时区显示给用户.我们将存储时区而不是偏移量,以便我们可以支持夏令时.
什么方法最适合处理时区?
以HTML格式发送到浏览器的所有日期均为UTC.客户端将使用moment.js或类似方式将UTC时间转换为正确的时区.将使用我们数据库中指定的时区而不是浏览器本地时间,因为这可能是不正确的.
当用户提交日期或时间时,必须先将其转换为UTC时间,然后再提交给服务器.
所有计算仍以UTC格式进行,日期/时间在最后可能的时刻转换为正确的时区,例如以HTML格式输出日期时.
当客户端提交任何日期/时间时,应立即转换为UTC.