Convert DateTime String to UTC in rails
我有一个像这样的字符串:
1 | "2010-01-01 12:30:00" |
我需要从当前本地时区转换为UTC。
我试过这个,但似乎认为字符串已经是UTC了。
1 2 | "2010-01-01 12:30:00".to_datetime.in_time_zone("Central Time (US & Canada)") => Fri, 01 Jan 2010 06:30:00 CST -06:00 |
我不知道从哪里开始。
从我的评论中添加了这个:
1 2 3 4 5 6 7 8 | >> Time.zone ="Pacific Time (US & Canada)" =>"Pacific Time (US & Canada)" >> Time.parse("2010-10-27 00:00:00").getutc => Wed Oct 27 06:00:00 UTC 2010 >> Time.zone ="Mountain Time (US & Canada)" =>"Mountain Time (US & Canada)" >> Time.parse("2010-10-27 00:00:00").getutc => Wed Oct 27 06:00:00 UTC 2010 |
谢谢你的帮助。
1 | Time.parse("2010-01-01 12:30:00").getutc |
编辑
(在考虑噩梦时磨牙,这是Ruby / Rails日期/时间处理)
好的,这个怎么样:
1 | Time.zone.parse("2010-01-01 12:30:00").utc |
请注意,
此外,Time.zone是Rails(ActiveSupport)的一部分,而不是Ruby。 你知道吗
在Rails 4及更高版本中,您可以直接使用
1 2 3 4 5 | "2010-01-01 12:30:00".in_time_zone #=> Fri, 01 Jan 2010 12:30:00 EST -05:00 "2010-01-01 12:30:00".in_time_zone.utc #=> 2010-01-01 17:30:00 UTC |
对于API,您可以使用:
1 | utc_date = Time.parse("2013-05-31 00:00").utc.iso8601 #=> Result will be: 2013-05-30T21:00:00Z |
你可以查看这些文章:
- 在Ruby on Rails中使用时区
- ISO8601 - Ruby中的日期