Python date-parsing



我有一个解析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')

最新更新