为什么Python中的一个日期字符串比另一个大?

时间:2016-05-24 21:28:18

标签: string python-2.7 datetime

Python是否会自动扫描数据类型并在某些情况下进行最佳猜测?在pandas中,我可以理解为什么一个日期比另一个日期大(因为它被设置为日期时间索引),例如在这种情况下:

        DT
2016-05-20 22:22:00
2016-05-20 22:22:01

但在Python中:

dt1 = '2016-05-20 22:22:00'
dt2 = '2016-05-20 22:22:01'
if dt2 > dt1:
    print dt2
>>'2016-05-20 22:22:01'

所以我认为Python会自动将这些视为日期,或者只是某种字符串的比较?因此,这样做是否安全?

EDIT 这个问题可能与提议的重复答案“Python使用的字符串比较技术”不同,因为它使用日期,时间和冒号。所提出的重复答案给出了词典排序的一些理论见解,在示例中使用了字母组,虽然它可能很完整,但是比较sting日期是否是安全的,可能会有一些不确定性。

因此,对于任何绊倒的人:是的,您可以比较字符串日期,安全

1 个答案:

答案 0 :(得分:1)

Python字符串使用" lexicographical order"进行比较,即Python检查第一个字符串以查看哪个字符串更大...如果两个第一个字符相等则Python继续使用第二个字符串char等等,直到两个字符串完成之一有一个不同的字符。

因此,对于格式为YYYY:MM:DD hh:mm:ss的日期,比较在时间顺序感中也是正确的。