rails: 修改时区为 Asia/Shanghai

在Rails里修改默认时区为东8区
更新于: 2025-11-03 16:51:01

修改配置如下

找到配置文件 rails-auth-api/config/application.rb

module RailsAuthApi
  class Application < Rails::Application
    # 省略很多代码 ...
    config.time_zone = "Asia/Shanghai"
    config.active_record.default_timezone = :local
    # 省略很多代码 ...
  end
end

说明

  • time_zone: 设置整个 Rails 应用的默认时区(即应用层的时间上下文)。所有通过 Time.currentDate.current 等方法获取的时间,都会自动转换为该时区。
  • active_record.default_timezone: 控制 Active Record 从数据库读取或写入 datetime / timestamp 字段时使用的时区

快速验证方式

改完然后重启应用再按上述方式复核一次

# 检查应用时区名称
bin/rails r 'puts Time.zone.name' 	# 期望输出:Asia/Shanghai

# 检查当前时间是否为上海时区
bin/rails r 'puts Time.zone.now'	# 输出应为北京时间(东八区),如:2025-11-03 14:23:45 +0800