【发布时间】:2018-01-23 08:30:27
【问题描述】:
我有以下格式的日期:
Thursday, September 22, 2016 at 11:04am UTC+02
Monday, January 22, 2018 at 6:46pm CST
...
我想将它们转换为 UNIX 时间戳。这种模式有效,但它忽略了时区:
timestamp = pd.to_datetime(date, format='%A, %B %d, %Y at %H:%M%p', exact=False)
我不知道如何考虑时区(“UTC+02”、“CST”)。
这不起作用:
timestamp = pd.to_datetime(date, format='%A, %B %d, %Y at %H:%M%p %Z')
# ValueError: unconverted data remains: +02
【问题讨论】:
-
嗯,我认为它不会忽略时区,只解析为默认的 UTC 日期时间。
-
因此,如有必要,需要手动将它们转换为时区 - 例如this solution
-
@jezrael 那么我不明白它怎么知道如果它不解析时区,它应该删除例如 2 小时来获取 UTC 时间。它是否使用默认的 python 时区?
-
抱歉,我有点不清楚 - 它正确解析时区,但返回默认的 UTC 日期时间,而不是带时区的日期时间。
-
@jezrael 但是当我没有给出指令时,它如何解析时区?此外,如果我有
exact=True,我会得到ValueError: unconverted data remains: UTC+02,这让我认为时区被完全忽略了。
标签: python pandas timezone strftime date-parsing