【发布时间】:2018-08-25 06:47:22
【问题描述】:
给定一个ActiveSupport::TimeWithZone 时间实例,我如何返回该时间实例的完整时区名称?
来自 ActiveSupport 文档:
Time.zone = 'Eastern Time (US & Canada)' # => "Eastern Time (US & Canada)"
time = Time.zone.now
time.zone # => "EST"
所以,给定一个时间对象,我可以使用time.zone 轻松获得时区缩写,但是如何获得完整的时区名称?在文档中的示例中,这将是 "Eastern Time (US & Canada)"(我也会对 "America/New_York" 感到满意)?
我意识到时区名称不是标准化的,此时我很乐意找到一种方法将缩写转换为任何非缩写格式(例如"Eastern Time (US & Canada)" 或 "America/New_York")。
似乎没有任何内置的时区缩写与时区的反向映射。至少,我还没有找到。显然我可以创建自己的映射,但似乎很有可能这是一个已解决的问题。
【问题讨论】:
-
@mudasobwa 谢谢,但是
time.zone的返回是标准字符串,所以没有name()方法。
标签: ruby-on-rails ruby activesupport