Time

时区

ruby输出的时区字符串的表现形式取决于您所安装的OS。有的OS甚至会返回下面这样的字符串。

$ ruby -e 'p Time.now'
Mon Sep 04 17:32:11 东京 (标准时) 2000

还有好多OS会返回当前时区, 此时Time.gmtime等也是鞭长莫及。

puts Time.now.gmtime.strftime("%H:%M %Z") #-> 06:09 GMT+9:00

另外,ruby本身可以输出系统无关的"UTC", 这使问题变得更加复杂了。

$ ruby -e 'p Time.now.gmtime.zone'
"GMT"
$ ruby -e 'p Time.now.gmtime'
Tue Jan 16 17:09:22 UTC 2001

下列方法会受到这些问题的影响。