通过一定的操作符,如==,!=,>比较两个字符串时,我明白了,<等。Python使用引擎盖下的字符串的ASCII值。在python比较字符串包含日期
我的问题是,是安全的日期的ASCII值进行比较,而不是在Python对象转换为DateTime对象?
例如,u'2017-01-01' > u'2016-12-01' =真
通过一定的操作符,如==,!=,>比较两个字符串时,我明白了,<等。Python使用引擎盖下的字符串的ASCII值。在python比较字符串包含日期
我的问题是,是安全的日期的ASCII值进行比较,而不是在Python对象转换为DateTime对象?
例如,u'2017-01-01' > u'2016-12-01' =真
以特定的格式,是的。更一般地说,大单位首先出现的任何格式(例如几个月前的数年)以及其中数字总是通过在左侧填充零来保持相同的长度是安全的。
与2016-12-01
(年+补零月+零填充天),你找字典顺序与时间顺序相同的格式。
最重要的数据是第一次(一年),那么月,日。这是不可能的较早日期在后的另一原因是财产的(零填充在这里很重要)
因此,在这种情况下,按字典比较是安全的。
你可以使用一些棘手的方式,例如:
date1 = u'2017-01-01'
date2 = u'2016-12-01'
int(date1.replace('-','')) > int(date2.replace('-',''))
注意
必须使用指令
%d
为月的一天作为零填充的十进制数。月份的 和%m
作为零填充的十进制数字。
谢谢。所以比较类似的东西是安全的:'2016-08-24 23:04:50'> ='2017-01-01'?哪个应该评估为假。 –
@CodyFlynn不,它们应该是相同的格式。例如''2017-01-01 00:00:00'<='2017-01-01''是'False',这对我没有意义。 –