zoukankan      html  css  js  c++  java
  • 【转】rails中的时区问题

    http://eric-gao.iteye.com/blog/1058197

    解释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时间。

    5、ActiveRecord::Base.default_timezone = :utc

    这个也是决定active_record对数据库交互的时区设置,写在代码中单独作为一行,可以覆盖config.active_record.default_timezone。

    参数和config.active_record.default_timezone一样,:utc和:local。

    要在界面和数据库都很好的显示处理中国时区时间,编辑/config/application.rb(rails2是environment.rb),加入

    config.active_record.default_timezone = :local  
    config.time_zone = 'Beijing'  

    完美解决rails中国时区时间设置。

  • 相关阅读:
    CodeForces 1017B
    POJ 1323-Game Prediction(贪心)
    CodeForces 104B-Testing Pants for Sadness(思维题)
    CodeForces 1324D
    UVA 1152-4 Values whose Sum is 0(二分查找)
    POJ 1700-Crossing River(贪心)
    HDU 1789-Doing Homework again(并查集+贪心)
    SDUT 1298-活动选择(贪心)
    HDU 1272-小希的迷宫(带环并查集)
    CodeForces
  • 原文地址:https://www.cnblogs.com/zs-note/p/4109763.html
Copyright © 2011-2022 走看看