2015-01-03 61 views
1

获取日期我用这个块:日期格式使用python

currentDate = date.today() 
today = currentDate.strftime('%m/%d/%Y') 

它返回我这个格式2014年12月22日或2015年1月2日 然后,我必须从文件比较字符串(注:我不能更改字符串)2014年12月22日或1/2/2015和我使用:

if l[0] == today: 

在第二种情况下,它明显失败。 我的问题:我怎么能改变strftime()为了只返回一个charachter的月份和日期,当它在零之前?

+3

比较两个datetime对象不是字符串 –

回答

-1

参照documentation,它似乎没有为此的字符序列。然而,您可以如下修正结果:

today = currentDate.strftime('%m/%d/%Y').replace("/0", "/") 
if today[0] == '0': 
    today = today[1:] 

这将消除任何导致0这么长的值与斜线分割。

+0

这不会取代第一代领导'0' – Digisec

+0

-OMGthchy,我喜欢你的建议,我这样做: (PDB)今天= currentDate.strftime( '%M /%d /%Y')。代替( “/ 0”, “/”) (PDB)p今天 '01/3/2015' 因此它取代第二零,是否可以选择删除两个零? – susja

+0

@Digisec谢谢,纠正 – OMGtechy

1

只是比较datetime对象:

from datetime import datetime, date 

currentDate = date.today() 
file_dt = "1/3/2015" 
dt2 = datetime.strptime(file_dt,"%m/%d/%Y") 
print(dt2.date() == currentDate) 
0
today = currentDate.strftime('%-m/%-d/%Y') 

警告,而不是标准,因此无法在某些平台上工作(检查的strftime(3)文档,节 “Glibc的注意事项”)。无论如何,我同意其他的答案,更好地对比datetime对象