Ruby,获得时区GMT之间的差异

时间:2016-02-11 12:00:57

标签: ruby

我将使用TZInfo gem在Ruby中区分GMT(例如:+09:00)。我正在阅读文档,但我找不到解决方案。我试过了:

tz = TZInfo::Timezone.get('Asia/Shanghai')
puts tz.strftime('%:z')

但它返回+00:00,这不正确,为什么?看起来它仍然在使用伦敦时间。

2 个答案:

答案 0 :(得分:0)

这应该这样做,但有人指出,你不能只使用这个位置,你需要检查夏令时等。

tz = TZInfo::Timezone.get('Asia/Shanghai')
puts sprintf("%02d:%02d", *tz.current_period.offset.utc_offset.divmod(3600))

答案 1 :(得分:0)

时区本身没有时差的概念,因为时间差可能在一年中的某个时段内变化(某些时区有夏令时)。您需要指定特定的日期时间才能获得有意义的时差。