简单的说,一般时间分两种,UTM时间(你可以认为它就是GMT时间,尽管两者还是有点小差距)和本地时间。
本地时间和UTM之间的差值就是gmt_offset。
建下面的ruby例子,我的时区是北京时间。所以我的gmt_offset就是:8*60*60=28800
当然如果本地时间,使用了夏令时,gmt_offset也会体现出来。
t = Time.gm(2000,1,1,20,15,1) #=> 2000-01-01 20:15:01 UTC
puts t.gmt_offset #=> 0
l = t.getlocal #=> 2000-01-02 04:15:01 +0800
puts l.gmt_offset #=> 28800
puts t
puts l
执行结果:
$ ruby time.rb
0
28800
2000-01-01 20:15:01 UTC
2000-01-02 04:15:01 +0800