在python中使用dateutil.parser处理缺少的值
我正在使用python dateutil标准化日期格式,理想的情况是我拥有所有日期:在python中使用dateutil.parser处理缺少的值,python,date,parsing,Python,Date,Parsing,我正在使用python dateutil标准化日期格式,理想的情况是我拥有所有日期: from dateutil.parser import parse date1 = '2012/01/02' parse(date1) datetime.datetime(2012, 1, 2, 0, 0) 但并非所有记录都是这样,我想处理两个案例: 首先,无效值: date2 = '2012/19/01' parse(date2) ValueError: month must be in 1..12 da
from dateutil.parser import parse
date1 = '2012/01/02'
parse(date1)
datetime.datetime(2012, 1, 2, 0, 0)
但并非所有记录都是这样,我想处理两个案例:
首先,无效值:
date2 = '2012/19/01'
parse(date2)
ValueError: month must be in 1..12
date2 = '2012/1/00'
parse(date2)
ValueError: day is out of range for month
对于这些情况,我仍然希望有任何可用的数据,第一个例子是年,第二个例子是年和月
第二种情况,缺少值:
date3 = '/1/10'
parse(date3)
datetime.datetime(2017, 1, 10, 0, 0)
如果日期、月份或年份不可用,我不想在没有得到通知的情况下获取当前的年份、月份或日期,我需要为这些情况使用默认值。也许您应该编写一个解析器方法,它检查输入字符串并用默认值替换非法日期:
from datetime import datetime
default=['2017','1','1']
def paretime(t):
i=t.split('/')
if len(i)<3:
return None
y,m,d = i
if y not in range(1,2018):
y=default[0]
if m not in range(1, 13):
m=default[1]
if d not in range(1, 32):
d=default[2]
return datetime.strptime("-".join([y,m,d]), '%Y-%m-%d')
print paretime('/1/1')
或
输出:
2017-01-01 00:00:00
2017-01-01 00:00:00
希望这有帮助。?什么是
parse
?你能解析这个函数吗definition@saikumarm从dateutil.parser导入解析
2017-01-01 00:00:00