我需要找出两个同格式日期时间字符串中哪个是最新的。
现在,我使用 datetime.strptime
方法转换它们。
然后我比较两个 datetime
对象。
然后我调用最大的 datetime
对象的 isoformat
以便将其作为 get 参数传递。
所以我想知道在不进行从 str
到 datetime
的转换的情况下找出最大的同种格式字符串是否可靠。
它似乎有效:
>>> from datetime import datetime as dt
>>> s1 = '2013-12-25T19:20:41.391393'
>>> s2 = '2013-12-25T19:20:41.391394'
>>> s1 > s2
False
>>> pattern = '%Y-%m-%dT%H:%M:%S.%f'
>>> dt.strptime(s1, pattern) > dt.strptime(s2, pattern)
False
最佳答案
ISO 8601 日期字符串(没有时区偏移),这是 isoformat 返回的字符串类型, can be compared as strings .
作为Assem-Hafez points out ,如果字符串包含时区偏移量,则字符串比较可能不会产生与时区感知日期时间比较相同的结果:
In [31]: import dateutil.parser as DP
In [32]: s = ["2019-08-29T10:50:35+00:00", "2019-08-29T10:50:35+02:00"]
In [33]: t = [DP.parse(si) for si in s]; t
Out[33]:
[datetime.datetime(2019, 8, 29, 10, 50, 35, tzinfo=tzutc()),
datetime.datetime(2019, 8, 29, 10, 50, 35, tzinfo=tzoffset(None, 7200))]
In [34]: s[0] < s[1]
Out[34]: True
In [35]: t[0] < t[1]
Out[35]: False
关于python - 比较两个同种格式日期时间字符串是否可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20774312/