我使用旧设备将一些元数据发送到服务器。我需要操作日期时间,这是在世界协调时。我还得到时区信息,其中的设备是POSIX格式,例如。对于柏林:
CET-1CEST,M3.5.0/2,M10.5.0/3
但是,像pytz这样的流行库似乎不支持这种格式
因此,我想我可以简单地将其转换为Olson格式,即:Europe/Berlin
但是,我无法找到将POSIX格式转换为Olson格式的方法(我认为这是一件常见的事情,并且得到了很好的支持)。你会怎么做?
发布于 2017-03-27 18:06:35
您不能从POSIX转换为Olson。
POSIX字符串是编码偏移、缩写和转换的格式。它们只能表示单个“标准时间”偏移量、可选单个“白天时间”偏移量以及它们之间的一对转换。
Olson字符串(又名IANA、tzdb、tzinfo等)是标识符。它们引用tz数据中的Zone或Link条目。每个区域可以包含任意数量的偏移和转换(使用Rule条目)。这允许真实地表示时区随时间变化的情况。
您可以为给定的Olson时区和给定的时间点(如"now")投影POSIX字符串,但反向是不可能的。
在您给出的示例中,给定Europe/Berlin,我可以计算当前的POSIX字符串,该字符串看起来与您所显示的类似。但是,对于Europe/Paris和其他几个具有随时间变化集的不同时区,将计算完全相同的字符串。没有办法区分他们。
https://stackoverflow.com/questions/43050855
复制相似问题