如果在默认时区中创建了Time
个实例,则zone
不是nil
:
irb> n=Time.now
2016-06-27 14:07:19 -0500
irb> n.zone
"CDT"
但是,如果通过指定偏移量创建Time
实例,则zone
为nil
:
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]
答案 0 :(得分:3)
不,没有办法做到这一点,并且有充分的理由:UTC偏移可以(并且通常确实)对应于许多不同的时区。您提到的偏移量-04:00就是一个很好的例子:它对应于about fifty different time zones。