1.什么是Time Zone,就是时区,对,论坛里经常有设置的,UTC或者是GMT
UTC = Coordinated Universal Time. 中文名称为协调世界时
GMT = Greenwich Mean Time. 中文名称为格林尼治时
新建一个rails项目,默认是utc时间。
可以运行time:zones:all, time:zones:us,还有time:zones:local来获取一些相关的时区信息
2. 在当前时区用来修改设置的一些方法
(1) Time.zone.local(), Time.zone.parse() and Time.zone.at() Time.zone.now
代码:
- >> Time.zone = 'Hawaii'
- => "Hawaii"
- >> Time.zone.now
- => Wed, 09 Apr 2008 15:48:18 HST -10:00
- >> Time.zone.local(2008, 4, 9, 15, 48, 18)
- => Wed, 09 Apr 2008 15:48:18 HST -10:00
- >> Time.zone.parse('2008-04-09 15:48:18')
- => Wed, 09 Apr 2008 15:48:18 HST -10:00
- >> Time.zone.at(1207792098)
- => Wed, 09 Apr 2008 15:48:18 HST -10:00
(2) in_time_zone函数可以把任何实例转化成存在Time.zone中的任何时区
(3)
在往数据库插入数据时,突然发现所有时间都早了8个小时,最初还以为是mysql的问题。于是编辑mysql配置文件,修改时区为+8,重启mysql问题依旧。最后通过控制台,打印变量值,发现在将正确的时间赋值给变量后,时间居然自动被减少了8个小时。
由于我的程序,暂时还不涉及多时区服务,于是,打开environment.rb,注释掉配置:config.time_zone = 'UTC',让rails使用默认本地时间。重启服务,运行程序,问题解决。