首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails:将UTC DateTime转换为另一个时区

Rails:将UTC DateTime转换为另一个时区
EN

Stack Overflow用户
提问于 2010-04-23 10:33:20
回答 6查看 91.7K关注 0票数 117

在Ruby/Rails中,如何将UTC DateTime转换为另一个时区?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-04-23 10:42:48

代码语言:javascript
复制
time.in_time_zone(time_zone)

示例:

代码语言:javascript
复制
zone = ActiveSupport::TimeZone.new("Central Time (US & Canada)")
Time.now.in_time_zone(zone)

或者只是

代码语言:javascript
复制
Time.now.in_time_zone("Central Time (US & Canada)")

您可以通过执行以下操作查找ActiveSupport时区的名称:

代码语言:javascript
复制
ActiveSupport::TimeZone.all.map(&:name)
# or for just US
ActiveSupport::TimeZone.us_zones.map(&:name)
票数 219
EN

Stack Overflow用户

发布于 2014-09-02 19:06:31

如果Time.zone是您想要的时区,那么您可以使用@date.to_time.to_datetime

代码语言:javascript
复制
> @date
=> Tue, 02 Sep 2014 23:59:59 +0000
> @date.class
=> DateTime
> @date.to_time
=> 2014-09-02 12:59:59 -1100
> @date.to_time.to_datetime
=> Tue, 02 Sep 2014 12:59:59 -1100 
票数 8
EN

Stack Overflow用户

发布于 2018-09-22 05:42:31

在纯拼音中,仅使用require 'date',请使用new_offset方法:

代码语言:javascript
复制
require 'date'

d=DateTime.parse('2000-01-01 12:00 +0200')
l=d.new_offset('-0700')
u=l.new_offset('UTC')
puts "#{u.strftime('%a %F %T %Z')} ❖ #{l.strftime('%a %F %T %Z')}"

使用Mac OS X 10.13上的标准ruby 2.3.7进行了测试。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2695837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档