DateTime接受哪些时区?

时间:2016-05-03 12:50:33

标签: perl datetime timezone timezone-offset

我试图通过文档找出但无法回答这个问题:perl接受的DateTime中的time_zone文字是什么?

CEST无效。对于CET,输出是当前时间,但我们目前有CEST个时区活动。

我的目标:我想了解当前时间并找出CET中的时间。

如果服务器在CEST运行,它应该给出当前时间-1h的结果。如果服务器在CET运行,则应该提供当前时间。

我的方法是:

$av_loc_TESTHOUR = DateTime->now(time_zone=>'CET')->strftime('%H');

,它给出服务器的当前时间作为结果,但应该给出当前时间-1h。

1 个答案:

答案 0 :(得分:1)

来自DateTime模块的documentation

  

time_zone参数可以是标量或DateTime::TimeZone对象。字符串将简单地作为其“name”参数传递给DateTime::TimeZone->new方法。该字符串可以是Olson DB时区名称(“America / Chicago”),偏移字符串(“+ 0630”)或单词“floating”或“local”。有关详细信息,请参阅DateTime::TimeZone文档。

它所引用的“更多详细信息”文档是here

它所引用的“Olson”数据库是标准的IANA TZ Database,您可以找到其标识符here

"CET"之类的标识符仅用于向后兼容目的的数据中。您应该使用完全限定的基于位置的时区标识符,例如"Europe/Paris"