我有一个解析python日期的问题。当我像这样调用它时,下面的代码给出了"TypeError: 'str' object is not callable"
python2 dateFilter.py 2015-01-01 2015-02-01
<标题>来源:from os import sys
from datetime import date, datetime, timedelta
def dateParser(date):
year = str(date[0:4])
month = str(date[5:7])
day = str(date[8:10])
print(year)
print(month)
print(day)
d = date(year, month, day)
print(d)
return
if __name__=="__main__":
startDate = dateParser(sys.argv[1])
endDate = dateParser(sys.argv[2])
我想从输入中获取日期并将其放入date对象
标题>您的参数名称date
遮蔽了您的导入:from datetime import date
,将您的参数名称更改为dt
,然后您就可以了:
def dateParser(dt):
year = str(dt[0:4])
...
应该使用datetime。Strptime而不是切片字符串。然后,只需一步就可以构造datetime对象:
>>> import datetime as dt
>>> d=dt.datetime.strptime('2015-02-01', '%Y-%m-%d').date()
>>> d.year, d.month, d.day
(2015, 2, 1)
那么你的代码将变成:
from os import sys
import datetime as dt
def dateParser(date_str):
return dt.datetime.strptime(date_str, '%Y-%m-%d').date()
if __name__=="__main__":
startDate = dateParser('2015-01-01')
endDate = dateParser('2015-02-01')