Python-如何将字符串2020-07-28T00:00:00.000Z转换为日期2020-07-28

时间:2020-07-29 05:00:03

标签: python-3.x

我想比较这两个日期,而这些日期来自微服务,如下所示:

[{"visitId": 1, "userId": 1, "branchId": 1, "date": "2020-07-28T00:00:00.000Z"},{"visitId": 2,"userId": 1,"branchId": 2,"date": "2020-07-28T00:00:00.000Z"}]

如何解析日期并比较它们是否相等。

我尝试了下面的代码,它给了我价值错误:

from datetime import datetime
datetime.fromisoformat(dt)

ValueError: Invalid isoformat string: '2020-07-28T00:00:00.000Z'

谢谢

2 个答案:

答案 0 :(得分:2)

from datetime import datetime

data = [
    {"visitId": 1, "userId": 1, "branchId": 1, "date": "2020-07-28T00:00:00.000Z"},
    {"visitId": 2, "userId": 1, "branchId": 2, "date": "2020-07-28T00:00:00.000Z"},
]


d1 = datetime.strptime(data[0]["date"], "%Y-%m-%dT%H:%M:%S.%fZ")
d2 = datetime.strptime(data[1]["date"], "%Y-%m-%dT%H:%M:%S.%fZ")

d1d2是日期时间对象,现在您可以使用“比较”运算符进行比较。

答案 1 :(得分:0)

您可以使用dateutil库。更加灵活

In [73]: a
Out[73]:
[{'visitId': 1,
  'userId': 1,
  'branchId': 1,
  'date': '2020-07-28T00:00:00.000Z'},
 {'visitId': 2,
  'userId': 1,
  'branchId': 2,
  'date': '2020-07-28T00:00:00.000Z'}]

In [75]: b = []

In [76]: for i in a:
    ...:     b.append(dateutil.parser.parse(i["date"]))
    ...:

In [77]: b
Out[77]:
[datetime.datetime(2020, 7, 28, 0, 0, tzinfo=tzutc()),
 datetime.datetime(2020, 7, 28, 0, 0, tzinfo=tzutc())]