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

Python的夏令时

Python的夏令时

pytz文档中

处理时间的首选方法是始终使用UTC,仅在生成人类可读的输出时才转换为本地时间。

因此,理想情况下,您应该使用utcNow而不是Now

假设由于某种原因,您的双手被绑住了并且需要处理当地时间,那么如果您在夏时制转换窗口中尝试对当前时间进行本地化,仍然会遇到问题。相同的情况datetime可能会发生两次,一次是在白天,另一次是在标准时间,并且该localize方法不知道如何解决冲突,除非您使用is_dst参数明确地告诉它。

因此,要获取当前的UTC时间:

utc = pytz.timezone('UTC')
Now = utc.localize(datetime.datetime.utcNow())

并将其转换为您的本地时间(但仅在必须时):

la = pytz.timezone('America/Los_Angeles')
local_time = Now.astimezone(la)

编辑:正如@JF Sebastian)的评论中指出的那样,您使用的第一个示例datetime.Now(tz)在所有情况下均适用。如上文所述,您的第二个示例在秋天过渡期间失败了。我仍然主张除显示外,所有时间均使用UTC而非本地时间。

python 2022/1/1 18:40:18 有304人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶