我正在尝试解析一个命中我的api的字符串。传入字符串是
"2014-03-19T04:00:00.000Z"
我需要以下格式的数据库sql才能工作:
"2014-03-19 00:00:00 -0400"
现在,我提出的解决方案是
Time.zone.parse("2014-03-19T04:00:00.000Z").in_time_zone('America/New_York').to_s
这对我来说是一个不雅的解决方案,我觉得应该有一种更动态的方式来做事情,而不指定时区名称(默认情况下应该是本地的(。我只想切换字符串的格式,因为它们应该是等效的。感谢
在application.rb
文件中配置time_zone
并按如下方式使用:
# application.rb:
class Application < Rails::Application
config.time_zone = 'America/New_York'
end
Time.zone.parse("2014-03-19T04:00:00.000Z").to_s
# => "2014-03-19 00:00:00 -0400"
更多使用的示例
$ > Time.zone = "America/New_York"
# => "America/New_York"
$ > Time.zone
# => (GMT-05:00) America/New_York
$ > Time.zone.now
# => Sat, 22 Mar 2014 18:28:48 EDT -04:00
irb(main):008:0> Time.parse("2014-03-19T04:00:00.000Z").getlocal.strftime("%F %T %z")
=> "2014-03-19 04:00:00 +0000"
在GMT+1:的系统上
irb(main):003:0> Time.parse("2014-03-19T04:00:00.000Z").getlocal.strftime("%F %T %z")
=> "2014-03-19 05:00:00 +0100"