config.time_zone和config.local_zone之间的区别是什么?两者都应该设置?

时间:2013-01-21 08:19:20

标签: ruby-on-rails timezone environment

config.time_zoneconfig.local_zone之间有什么区别?是否应该同时设置?

1 个答案:

答案 0 :(得分:5)

1) config.time_zone

Rails使您能够配置应用时区。它就像Time.zone = 'EST'一样简单。

因此,在config.time_zone中设置application.rb最终会做同样的事情。这是正确的做法,因为我们不想依赖服务器时区

application.rb(Rails 3)文件中,您可以设置默认时区:

config.time_zone = 'Central Time (US & Canada)'  

2) config.local_zone

显示系统本地时间。

因此,如果你真的必须在数据库中拥有本地时间,那么应该依赖于Rails 将config.time_zone设置为UTC,这告诉它应该假设 时间戳已经是UTC,因此不需要更改它们 让他们进入它认为的UTC。

config.active_record.default_timezone确定从数据库中提取日期和时间时是否使用Time.local(如果设置为:local)或Time.utc(如果设置为:utc)。 Rails的默认值为:utc,但在Rails之外使用时,Active Record默认为:local