将tz naive datetime转换为tz感知从0分钟跳到58分钟

2024-05-12 20:34:41 发布

您现在位置:Python中文网/ 问答频道 /正文

当我将unknowledgedatetime转换为aware时,它会做一件奇怪的事情。它增加了58分钟

_datetime = datetime.combine(_date,_time)
print(_datetime)
datetime_tz = _datetime.replace(tzinfo='Europe/Bratislava')
print(_datetime_tz)

2020-02-02 12:45:00
2020-02-02 12:45:00+00:58

你知道为什么以及如何让它工作吗


Tags: datetimedatetime事情replacetzprintaware
1条回答
网友
1楼 · 发布于 2024-05-12 20:34:41

要从pytz正确使用时区对象,必须使用localize函数

>>> import pytz
>>> tz = pytz.timezone('Europe/Bratislava')
>>> _datetime = datetime.combine(_date,_time)
>>> print(_datetime)
2020-02-02 12:45:00
>>> _datetime_tz = tz.localize(_datetime)
>>> print(_datetime_tz)
2020-02-02 12:45:00+01:00

如果不这样做,时区对象将处于无效状态,因为它没有机会调整日期

相关问题 更多 >