datetime.datetime.utcnow()
为什么这个 datetime
没有任何时区信息,因为它明确是一个 UTC datetime
?
我希望这将包含 tzinfo
。
原文由 Vitaly Babiy 发布,翻译遵循 CC BY-SA 4.0 许可协议
datetime.datetime.utcnow()
为什么这个 datetime
没有任何时区信息,因为它明确是一个 UTC datetime
?
我希望这将包含 tzinfo
。
原文由 Vitaly Babiy 发布,翻译遵循 CC BY-SA 4.0 许可协议
请注意,对于 Python 3.2 及更高版本, datetime
模块包含 datetime.timezone
。 datetime.utcnow()
的文档说:
An aware current UTC datetime can be obtained by calling
datetime.now
(
timezone.utc
)
.
So, datetime.utcnow()
doesn’t set tzinfo
to indicate that it is UTC, but datetime.now(datetime.timezone.utc)
does return UTC time with tzinfo
set.
所以你可以这样做:
>>> import datetime
>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2014, 7, 10, 2, 43, 55, 230107, tzinfo=datetime.timezone.utc)
原文由 Craig McQueen 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答879 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
这意味着它是天真的时区,所以你不能将它与
datetime.astimezone
一起使用你可以给它一个这样的时区
现在你可以改变时区
要获取给定时区的当前时间,您可以将 tzinfo 直接传递给
datetime.now()
:它适用于任何时区,包括那些遵守夏令时 (DST) 的时区,即它适用于在不同时间可能具有不同 utc 偏移量(非固定 utc 偏移量)的时区。不要使用
tz.localize(datetime.now())
当当地时间不明确时,它可能会在夏令时结束转换期间失败。