使用 Polars 解析带有偏移量信息的日期时间字符串时,输出始终采用 UTC 格式:
pl.Series(['2020-01-01T01:00+10:00']).str.to_datetime()
shape: (1,)
Series: '' [datetime[μs, UTC]]
[
2019-12-31 15:00:00 UTC
]
我认为这样做的原因是不可能表示具有非恒定时区的序列,因此这种行为是处理 [+1, +2, +3] 等输入(其中 DST 更改为一个例子)。
Polars 不想做出模糊的猜测,这很好,但是 我如何安全地得到“+10:00”来自己处理这个问题? (或 [+1, +2 ,+3] 在更困难的情况下。)
chrono
成功地将其解析为偏移量,我如何才能将其作为 pl.Duration
列或其他内容而无需自己从头开始手动进行偏移解析?
当前可用的唯一选项是使用
map_elements
并在 Python 中进行解析:
from datetime import datetime
import polars as pl
s = pl.Series(['2020-01-01T01:00+10:00', '2024-03-02T03:12-14:00'])
def func(row):
parsed = datetime.strptime(row, '%Y-%m-%dT%H:%M%z')
return parsed.tzinfo.utcoffset(parsed)
s.map_elements(func, return_dtype=pl.Duration)
shape: (2,)
Series: '' [duration[μs]]
[
10h
-14h
]