如何比较2个时间戳(日期+时间+时区)

时间:2018-11-19 11:59:45

标签: python

我从数据库中获得了2个日期,如果一个日期大于另一个日期,我需要进行比较。 我以这种格式获取日期:

2018-11-07 18:00:40.679087+00:00
2018-11-14 00:00:17.908676+00:00

我尝试了很多解决方案,但是我没有弄清楚它是如何工作的。

ps .:我有很多看起来像这样的问题,但就我而言,我有一个时区来考虑这是不同的。

3 个答案:

答案 0 :(得分:2)

尝试一下

from dateutil import parser
date1='2018-11-07 18:00:40.679087+00:00'
date2='2018-11-14 00:00:17.908676+00:00'
print parser.parse(date2) - parser.parse(date1)

Result:6 days, 5:59:37.229589

答案 1 :(得分:0)

尝试这个(使用内置的Python模块):

background-image: url('/assets/icons/T04_24_edit.svg')

输出:

from datetime import datetime

d1 = "2018-11-07 18:00:40.679087+00:00"
d2 = "2018-11-14 00:00:17.908676+00:00"

d1 = d1[:d1.rfind(":")] + d1[d1.rfind(":")+1:]
d2 = d2[:d2.rfind(":")] + d2[d2.rfind(":")+1:]

t1 = datetime.strptime(d1, "%Y-%m-%d %H:%M:%S.%f%z")
t2 = datetime.strptime(d2, "%Y-%m-%d %H:%M:%S.%f%z")

diff = t2 - t1
print(diff)

答案 2 :(得分:0)

:困扰着您,您可以将其解析为:

d = '2018-11-07 18:00:40.679087+00:00'
d = d[:-3]+d[-2:]
datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f%z')

datetime.datetime(2018, 11, 7, 18, 0, 40, 679087, tzinfo=datetime.timezone.utc)