gpt4 book ai didi

ruby - 带 ActiveSupport 的默认时区(无 Rails)

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:44 28 4
gpt4 key购买 nike

如何在 ActiveSupport 中设置默认时区?

这是发生了什么:

irb -r 'rubygems'
ruby-1.8.7-p174 > require 'active_support'
ruby-1.8.7-p174 > require 'active_support/time_with_zone'
ruby-1.8.7-p174 > Time.zone
ruby-1.8.7-p174 > nil

如何将其默认设置为当前位置?

最佳答案

在 rails 中,它通过 rails 初始化程序在 environment.rb 中设置

Rails::Initializer.run do |config|
config.time_zone = 'Pacific Time (US & Canada)'
# ...

我刚刚做了一个测试,当 config.time_zone 被注释掉时,time.zone 也会在 rails 项目中返回 nil ;所以我想没有'默认'它只是在初始化程序中设置

我猜您已经知道这会“有效”?

irb -r 'rubygems'
ruby-1.8.7-p174 > require 'active_support'
ruby-1.8.7-p174 > require 'active_support/time_with_zone'
ruby-1.8.7-p174 > Time.zone
ruby-1.8.7-p174 > nil
ruby-1.8.7-p174 > Time.zone = 'Pacific Time (US & Canada)'
ruby-1.8.7-p174 > Time.zone
=> #<ActiveSupport::TimeZone:0x1215a10 @utc_offset=-28800, @current_period=nil, @name="Pacific Time (US & Canada)", @tzinfo=#<TZInfo::DataTimezone: America/Los_Angeles>>

注意:以上代码使用的是 rails 2.2.2,新版本可能会有所不同?

编者注:在 rails >= 3.0 中,所有猴子补丁都已移至 core_ext 命名空间,因此上述要求不会延长 时间。对于以后的 ActiveSupport 版本,使用以下内容:

require 'active_support/core_ext/time/zones'

关于ruby - 带 ActiveSupport 的默认时区(无 Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077848/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com