Tob*_*ner 36 ruby ruby-on-rails
我有一个像这样的字符串:
"2010-01-01 12:30:00"
Run Code Online (Sandbox Code Playgroud)
我需要从当前本地时区转换为UTC.
我试过这个,但似乎认为字符串已经是UTC了.
"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
Run Code Online (Sandbox Code Playgroud)
我不知道从哪里开始.
从我的评论中添加了这个:
>> 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
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
zet*_*tic 55
Time.parse("2010-01-01 12:30:00").getutc
Run Code Online (Sandbox Code Playgroud)
编辑
(在考虑噩梦时磨牙,这是Ruby/Rails日期/时间处理)
好的,这个怎么样:
Time.zone.parse("2010-01-01 12:30:00").utc
Run Code Online (Sandbox Code Playgroud)
请注意,Time.zone.parse
返回a DateTime
,同时追加.utc
给你一个Time
.有差异,所以要小心.
此外,Time.zone是Rails(ActiveSupport)的一部分,而不是Ruby.你知道吗
Dee*_*ale 10
在Rails 4及以上版本中,您可以直接使用in_time_zone
"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
Run Code Online (Sandbox Code Playgroud)
对于API,您可以使用:
utc_date = Time.parse("2013-05-31 00:00").utc.iso8601 #=> Result will be: 2013-05-30T21:00:00Z
Run Code Online (Sandbox Code Playgroud)
你可以查看这些文章:
归档时间: |
|
查看次数: |
42927 次 |
最近记录: |