完美解决rails中国时区时间设置
2017-03-31 16:50
453 查看
解释4个时区设置的不同:
config.active_record.default_timezone
config.time_zone
Time.zone
ENV[‘TZ’]
分别解释如下:
1、ENV[‘TZ’]
这个变量指的是服务器系统变量,ubuntu下可以用cat /etc/timezone来查看。当这个值为Asia/Shanghai时,显示的就是中国时间。
对于ruby/rails来说,这个值决定Time.now的显示时间。
2、config.time_zone
这个值是rails系统对显示时间的默认设置,可以通过rake time:zones:all列出所有可以设置的时区,一般来说把这个设置为Beijing。
3、Time.zone
这个是设置最终处理显示的时区,可以覆盖config.time_zone,参数和config.time_zone一样。
4、config.active_record.default_timezone
这个default_timezone是决定active_record对数据库交互的时区设置,也就是影响created_at和updated_at在数据库的记录时间。
只有两个参数:utc和:local,rails初始化时默认是utc,所以保存到数据库的时间是utc时间。
要在界面和数据库都很好的显示处理中国时区时间,编辑/config/application.rb(rails2是environment.rb),加入
config.active_record.default_timezone
config.time_zone
Time.zone
ENV[‘TZ’]
分别解释如下:
1、ENV[‘TZ’]
这个变量指的是服务器系统变量,ubuntu下可以用cat /etc/timezone来查看。当这个值为Asia/Shanghai时,显示的就是中国时间。
对于ruby/rails来说,这个值决定Time.now的显示时间。
2、config.time_zone
这个值是rails系统对显示时间的默认设置,可以通过rake time:zones:all列出所有可以设置的时区,一般来说把这个设置为Beijing。
3、Time.zone
这个是设置最终处理显示的时区,可以覆盖config.time_zone,参数和config.time_zone一样。
4、config.active_record.default_timezone
这个default_timezone是决定active_record对数据库交互的时区设置,也就是影响created_at和updated_at在数据库的记录时间。
只有两个参数:utc和:local,rails初始化时默认是utc,所以保存到数据库的时间是utc时间。
要在界面和数据库都很好的显示处理中国时区时间,编辑/config/application.rb(rails2是environment.rb),加入
config.active_record.default_timezone = :local config.time_zone = 'Beijing'
相关文章推荐
- 完美解决rails中国时区时间设置
- php解决时间不正确问题,设置中国时区
- Websphere设置JVM时区解决程序、日志时间快8小时问题
- linux环境下时区无法设置(系统时间慢8个小时)的问题解决
- Websphere设置JVM时区解决程序、日志时间快8小时问题
- Mysql -- 设置中国时区时间
- linux环境下时区无法设置(系统时间慢8个小时)的问题解决
- Django时区设置, 解决mysql存入时间偏差问题
- ruby -- 基础学习(三)设置中国时区时间
- Linux 下Tomcat容器启动设置时区 解决tomcat时间统一的问题 总是慢8小时
- PHP的php.ini时区设置问题 解决时间相差8小时问题
- 系统时间同步设置!解决Windows时间同步失败问题!
- Ubuntu Server Editon 时区设置,时间同步
- debian系统设置时间,时区
- rails设置时区
- PHP获取系统时间,时区设置问题
- VMware中Linux系统时间与主机同步以及时区设置
- ubuntu设置时区,网上同步时间
- rails 2.3.5中的非UTC时间的设置