python - 比较两个同种格式日期时间字符串是否可靠?

标签 python datetime

我需要找出两个同格式日期时间字符串中哪个是最新的。

现在,我使用 datetime.strptime 方法转换它们。 然后我比较两个 datetime 对象。 然后我调用最大的 datetime 对象的 isoformat 以便将其作为 get 参数传递。

所以我想知道在不进行从 strdatetime 的转换的情况下找出最大的同种格式字符串是否可靠。

它似乎有效:

>>> 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/

相关文章:

python - 如何从列表中删除项目但在 Python 中保留原始索引

python - GPIO 引脚没有错误但没有得到预期的结果?

python - Pandas 列随时间的变化

.net - DateTime.Now 抛出异常

python - 时间戳超出平台 localtime()/gmtime() 函数的范围

scala - 在 Zeppelin 和 Spark 中解析 CSV 中的日期时间信息

Python Pandas - 替换与正则表达式匹配的单元格值

python - 我如何有条件地重试并重新抓取 Scrapy 中的当前页面?

Python排列顺序

r - data.table 过去 24 小时内的滚动总和