程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Python:如何获得“timezone aware”的datetime.today()值?

发布于2019-08-21 15:21     阅读(699)     评论(0)     点赞(17)     收藏(2)


我试图从值中减去一个日期值datetime.today()来计算多久以前的东西。但它抱怨说:

TypeError: can't subtract offset-naive and offset-aware datetimes

该值datetime.today()似乎不是“时区感知”,而我的其他日期值是。我如何获得时间区域的值datetime.today()现在它给我时间在当地时间,恰好是PST,即UTC-8hrs。最坏的情况是,有没有办法我可以手动输入时区值到datetime返回对象datetime.today()并将其设置为UTC-8?当然,理想的解决方案是让它自动知道时区。


解决方案


在标准库中,没有创建自己的时区类的创建感知时区的跨平台方法。

在Windows上,有win32timezone.utcnow(),但这是pywin32的一部分。我宁愿建议使用pytz库,它有一个不断更新的大多数时区数据库。

使用本地时区可能非常棘手(请参阅下面的“进一步阅读”链接),因此您可能更愿意在整个应用程序中使用UTC,尤其是算术运算,如计算两个时间点之间的差异。

您可以像这样获得当前日期/时间:

import pytz
from datetime import datetime
datetime.utcnow().replace(tzinfo=pytz.utc)

请注意datetime.today()datetime.now()返回当地时间,而不是UTC时间,因此应用.replace(tzinfo=pytz.utc)它们是不正确的。

另一个好方法是:

datetime.now(pytz.utc)

这有点短,并做同样的事情。


在许多情况下进一步阅读/观看为什么更喜欢UTC:



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/50585/407371a6b0657d8c4112/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)