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

2024-05-17 01:09:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我从数据库中得到了两个日期,我需要比较一个日期是否大于另一个日期。 我得到的日期是这样的:

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

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

附言:我有很多问题看起来像这个,但在我的情况下,我有时区考虑这是不同的。你知道吗


Tags: 数据库情况解决方案附言
3条回答

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

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)

输出:

6 days, 5:59:37.229589

:正在困扰您,您可以像这样解析它:

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)

试试这个

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

相关问题 更多 >