我在使用Rails DateTime时遇到了一些问题
我这样做:
@now = DateTime.now
结果是= 2015-10-05T11:40:23 + 02:00
在下一步中,我这样做:
@now = @now + params[:time].to_i.hours
在此步骤中,我将实际时间添加了几个小时。 ......工作正常。
结果可能是: 2015-10-05T12:40:23 + 02:00 (如果我加一小时)
现在,当我将它存储到数据库时,它存储了这个: 2015-10-05 10:40:23
我认识到如果我从数据库中获取数据我得到了正确的值: 2015-10-05T12:40:23 + 02:00
我的问题是为什么它在数据库中是一个不同的值? cronjob如何反应?需要哪个值?
答案 0 :(得分:1)
这是因为Time Zones
不同。您的时区距离UTC
+2小时。数据库始终在UTC
中节省时间。当您获取时间,然后根据您的时区转换UTC
时间。
默认情况下,cron作业在UTC时间运行。但我们可以改变它。
例如,我们的冠军在:
5 2 3 * * TZ="UTC" /do/command > /dev/null 2>&1
默认情况下TZ="UTC"
,但我们可以更改它:TZ="America/New_York"
5 2 3 * * TZ="America/New_York" /do/command > /dev/null 2>&1