您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么datetime.datetime.utcnow()不包含时区信息?

为什么datetime.datetime.utcnow()不包含时区信息?

这意味着它是时区幼稚的,所以您不能将其与 datetime.astimezone

你可以给它一个时区

import pytz  # 3rd party: $ pip install pytz

u = datetime.utcNow()
u = u.replace(tzinfo=pytz.utc) #NOTE: it works only with a fixed utc offset

现在您可以更改时区

print(u.astimezone(pytz.timezone("America/New_York")))

获取给定时区的当前时间,可以将tzinfodatetime.Now()直接传递给:

#!/usr/bin/env python
from datetime import datetime
import pytz # $ pip install pytz

print(datetime.Now(pytz.timezone("America/New_York")))

它适用于任何时区,包括那些遵守夏时制(DST)的时区,即,它适用于在不同时间具有不同utc偏移量(非固定utc偏移量)的时区。请勿使用tz.localize(datetime.Now())-如果当地时间不明确,则在DST结束过渡期间可能会失败。

其他 2022/1/1 18:42:17 有577人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶