为什么ruby在将时间戳转换为秒时不会减去时区?
1.9.3-p429 :008 > a = Time.now()
=> 2013-09-27 16:23:17 +0300
1.9.3-p429 :011 > a.utc
=> 2013-09-27 13:23:17 UTC
1.9.3-p429 :009 > a.to_i
=> 1380288197
1.9.3-p429 :010 > a.utc.to_i
=> 1380288197
a.to_i应比a.utc.to_i高3小时(10800秒),我需要它,我该怎么办?
答案 0 :(得分:2)
这是关于Ruby中Time
的事情。 Time.now.to_f
为您提供number of seconds since the Epoch.有关Epoch的更多信息available on wikipedia
为了区分两个Time
个对象,您应该将它们减去difference
,而不是noted in the docs。
要获得两个持有相同时间但具有不同UTC偏移的对象之间的差异(如问题中所示),只需使用utc_offset
方法。
a = Time.now
b = Time.now.utc
difference = (b.utc_offset - a.utc_offset)/60/60
#=> 5
答案 1 :(得分:0)
时间不会改变,只是调整到不同的时区:
a = Time.now #=> 2013-09-27 16:01:51 +0200
b = a.dup.utc #=> 2013-09-27 14:01:51 UTC
a == b #=> true