时区的新时间

时间:2016-06-22 17:37:21

标签: ruby time

是否有一种无宝石的方法可以在给定时区创建Time实例:

  • 使用其名称或缩写
  • ,无需知道夏令时是否有效?

我正在使用timezone gem

require 'timezone'
CDT = Time.new
# => 2016-06-22 12:23:30 -0500
tz = Timezone.fetch('America/Los_Angeles')
# => #<Timezone::Zone name: "America/Los_Angeles">
PDT = tz.time_with_offset(CDT)
# => 2016-06-22 10:23:30 -0700

我可以获得补偿:

Time.zone_offset('CDT')
# => -25200
Time.zone_offset('CST')
# => -28800

然后使用这些来创建Time个实例:

CDT=Time.new
# => 2016-06-22 12:31:17 -0500
tzoff=Time.zone_offset('PDT')
# => -25200
PDT=CDT.getlocal(tzoff)
# => 2016-06-22 10:31:17 -0700

这需要我知道夏令时是否有效以及其他时区是否使用了调整。

0 个答案:

没有答案