我处于一种奇怪的情况,我有一个 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/