发布于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黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!