我试图从datetime.datetime.today()的值中减go 一个日期值,以计算某物的存在时间.但它抱怨:

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

datetime.datetime.today()似乎不是"时区感知",而我的另一个日期值是.如何获得时区感知的值datetime.datetime.today()

现在,它给我的时间是当地时间,恰好是太平洋标准时间,也就是UTC-8小时.最坏的情况是,有没有办法将时区值手动输入到datetime.datetime.today()返回的datetime对象中,并将其设置为UTC-8?

当然,理想的解决方案是让它自动知道时区.

推荐答案

在标准库中,如果不创建您自己的时区类,就没有跨平台的方法来创建感知时区.(Edit: Python3.9在提供此功能的标准库中引入了zoneinfo.)

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

使用本地时区可能非常棘手(请参阅下面的"进一步阅读"链接),因此您可能更希望在整个应用程序中使用UTC,特别是在计算两个时间点之间的差等算术运算时.

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

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

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

另一个很好的方法是:

datetime.now(pytz.utc)

稍微短一点,效果也一样.


进一步阅读/观察在许多情况下为什么 Select UTC:

Python相关问答推荐

try 从网站获取表(ValueRight:如果使用所有纯量值,则必须传递索引)

Python-Polars:如何用两个值的平均值填充NA?

try 使用tensorFlow.keras.models时optree Import错误

如何使用scikit-learn Python库中的Agglomerative集群算法以及集群中声明的对象数量?

KNN分类器中的GridSearchCV

如果AST请求默认受csref保护,那么在Django中使用@ system_decorator(csref_protect)的目的是什么?

Python -Polars库中的滚动索引?

如何根据情况丢弃大Pandas 的前n行,使大Pandas 的其余部分完好无损

Pandas 除以一列中出现的每个值

Python Hashicorp Vault库hvac创建新的秘密版本,但从先前版本中删除了密钥

可变参数数量的重载类型(args或kwargs)

如何在Polars中从列表中的所有 struct 中 Select 字段?

计算每个IP的平均值

如何在UserSerializer中添加显式字段?

将JSON对象转换为Dataframe

当我try 在django中更新模型时,模型表单数据不可见

使用Python从URL下载Excel文件

为什么\b在这个正则表达式中不解释为反斜杠

如何使用Numpy. stracards重新编写滚动和?

如何在Pyplot表中舍入值