python - POSIX 到 Olson/IANA 时区格式转换

标签 python datetime timezone

我使用向服务器发送一些元数据的旧设备。我需要操纵 UTC 格式的日期时间。我还获取设备位于 POSIX 格式的时区信息,例如。柏林:

CET-1CEST,M3.5.0/2,M10.5.0/3

但是,像 pytz 这样的流行库似乎不支持这种格式

因此我想我只需将其转换为 Olson 格式即可:Europe/Berlin

但我找不到将 POSIX 格式转换为 Olson 格式的方法(我认为这是常见的事情并且得到了很好的支持)。你会怎么做?

最佳答案

您无法从 POSIX 转换为 Olson。

POSIX 字符串是一种用于编码偏移、缩写和转换的格式。它们只能表示单个“标准时间”偏移、一个可选的单个“夏令时”偏移以及它们之间的一对转换。

Olson 字符串(又名 IANA、tzdb、tzinfo 等)是标识符。它们引用 tz 数据中的 ZoneLink 条目。每个区域可以包含任意数量的偏移和转换(使用规则条目)。这样可以真实地表示时区如何随时间变化。

可以为给定的奥尔森时区和给定的时间点(例如“现在”)投影 POSIX 字符串,但反之则不可能。

在您给出的示例中,给定 Europe/Berlin,我可以计算当前的 POSIX 字符串,它看起来像您所显示的那样。但对于 Europe/Paris 和其他几个随着时间的推移有自己的变化的不同时区,将计算完全相同的字符串。没有办法区分它们。

关于python - POSIX 到 Olson/IANA 时区格式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43050855/

相关文章:

python - BeautifulSoup:从 html 获取 css 类

tsql - T-SQL 中的舍入毫秒

mysql - 如何更改在virtualbox中的linux mint上运行的mysql时区?

java - 允许用户选择时区

python - 分数背后的重要原因(0.1) = 3602879701896397/36028797018963968

java和python进程在linux上可以独占锁同一个文件

python - Cython prange 与字符串数组

python - 如何在 matplotlib 中使用日期时间索引增加 xticks?

c# - C#中如何比较日期

javascript - 格式化 Google Charts 日期时间轴标签的时区