Nil区域为新的时间

时间:2016-06-27 19:19:12

标签: ruby

如果在默认时区中创建了Time个实例,则zone不是nil

irb> n=Time.now
2016-06-27 14:07:19 -0500
irb> n.zone
"CDT"

但是,如果通过指定偏移量创建Time实例,则zonenil

irb> n=Time.now
2016-06-27 14:07:19 -0500
irb> et=Time.new(n.year,n.month,n.day,0,0,0,"-04:00")
2016-06-27 00:00:00 -0400
irb> et.zone
nil

有没有办法在这种情况下获得zone

$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]

1 个答案:

答案 0 :(得分:3)

不,没有办法做到这一点,并且有充分的理由:UTC偏移可以(并且通常确实)对应于许多不同的时区。您提到的偏移量-04:00就是一个很好的例子:它对应于about fifty different time zones