我将使用TZInfo gem在Ruby中区分GMT(例如:+09:00
)。我正在阅读文档,但我找不到解决方案。我试过了:
tz = TZInfo::Timezone.get('Asia/Shanghai')
puts tz.strftime('%:z')
但它返回+00:00,这不正确,为什么?看起来它仍然在使用伦敦时间。
答案 0 :(得分:0)
这应该这样做,但有人指出,你不能只使用这个位置,你需要检查夏令时等。
tz = TZInfo::Timezone.get('Asia/Shanghai')
puts sprintf("%02d:%02d", *tz.current_period.offset.utc_offset.divmod(3600))
答案 1 :(得分:0)
时区本身没有时差的概念,因为时间差可能在一年中的某个时段内变化(某些时区有夏令时)。您需要指定特定的日期时间才能获得有意义的时差。