python - 如果日期时间可以是偏移感知的或天真的,则从当前时间中减去日期时间对象

标签 python python-3.x datetime

我处于一种奇怪的情况,我有一个 json 文件,我正在从中读取 string 格式的日期时间。然后我使用 dateutil.parser.parse 解析它。

最终的datetime对象是这样的

2015-08-22 14:06:03-07:00

我需要从当前时间中减去它并得到总天数。我可以轻松做到这一点,但问题是我并不总是知道文件中上述日期时间的格式(在某些文件中它是偏移感知的,而其他时候则不是)。

datetime.datetime.now() 给出 2018-10-14 14:10:44.532932

有没有办法从当前日期时间中减去任何格式的日期时间

示例,

文件中的格式可以返回,

2015-08-22 14:06:03-07:00

2015-08-22 14:06:03.4421-07:00

或者其他东西

当前日期时间返回 2018-10-14 14:19:10.510259 但解析后的 datetime 返回 2013-06-20 13:39:30-07 :00。我知道两者都是 datetime 对象,但是当我减去它时,我得到

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

我希望能够从当前日期时间中减去任何这些格式。

最佳答案

您应该在获取当前时间时设置时区。

from datetime import datetime
from dateutil.parser import parse
from pytz import timezone

et = timezone('US/Eastern')

x = parse('2015-08-22 14:06:03.4421-07:00')
y = datetime.now(tz=et)

print(y-x)

关于python - 如果日期时间可以是偏移感知的或天真的,则从当前时间中减去日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799167/

相关文章:

python - Python中的直方图动画

python - 第二周后每月的随机日期

c# - DateTime.ParseExact() 比 DateTime.Parse() 快吗

python - 如何使用 python api 编辑 Shopify 履行

Python:调用名称存储在变量中的函数

python - 如何从链接列表中抓取?

java - 在 Java 中查找日期

python - 对 Pandas Dataframes 中的列数据进行分组

python - 使用 python 中的列表推导就地修改列表的一部分

python - Python 日志记录模块中字段组合的固定长度格式