2017-09-25 18 views
1

通过一定的操作符,如==,!=,>比较两个字符串时,我明白了,<等。Python使用引擎盖下的字符串的ASCII值。在python比较字符串包含日期

我的问题是,是安全的日期的ASCII值进行比较,而不是在Python对象转换为DateTime对象?

例如,u'2017-01-01' > u'2016-12-01' =真

回答

0

以特定的格式,是的。更一般地说,大单位首先出现的任何格式(例如几个月前的数年)以及其中数字总是通过在左侧填充零来保持相同的长度是安全的。

+0

谢谢。所以比较类似的东西是安全的:'2016-08-24 23:04:50'> ='2017-01-01'?哪个应该评估为假。 –

+0

@CodyFlynn不,它们应该是相同的格式。例如''2017-01-01 00:00:00'<='2017-01-01''是'False',这对我没有意义。 –

2

2016-12-01(年+补零月+零填充天),你找字典顺序与时间顺序相同的格式。

最重要的数据是第一次(一年),那么月,日。这是不可能的较早日期在后的另一原因是财产的(零填充在这里很重要)

因此,在这种情况下,按字典比较是安全的。

0

你可以使用一些棘手的方式,例如:

date1 = u'2017-01-01' 
date2 = u'2016-12-01' 

int(date1.replace('-','')) > int(date2.replace('-','')) 

注意

必须使用指令%d为月的一天作为零填充的十进制数。月份的 和%m作为零填充的十进制数字。