【发布时间】:2022-01-06 02:33:51
【问题描述】:
代码:
import pytz
from django.utils import timezone
KST = pytz.timezone('Asia/Seoul')
UTC = pytz.timezone('UTC')
default_time = timezone.datetime(2021, 11, 29, 16, 44)
current_manual_kst = KST.localize(default_time)
current_manual_utc = default_time
print(current_manual_kst.timestamp())
print(current_manual_utc.timestamp())
结果:
>>> 1638171840.0
>>> 1638204240.0
所以,我可以看到结果不同。
我认为时间戳应该相同,但结果却不同。
为什么会这样? 以及如何从 KST.localized datetime 中获取相同的时间戳(默认:UTC)?
【问题讨论】:
-
我在代码中的任何地方都没有看到您的代码将
default_time的 tzinfo 设置为 UTC,因此default_time将是幼稚的,因此被视为本地时间,无论是什么 - 因此,Unix 时间不一定要同意。请改用current_manual_utc = default_time.replace(tzinfo=UTC)。是的,在这里使用replace是安全的。
标签: python django datetime timezone pytz