需要在Python中转换有效的日期值并错误输出无效值
需要在Python中转换有效的日期值并错误输出无效值,python,strptime,Python,Strptime,我正在使用Python3.6datetime.datetime.strtime根据提供的格式解析不同的输入日期值 下面是我正在使用的代码 def date_convert(dt, fmt): outdict = {'result': '', 'error': ''} try: outdict['result'] = datetime.strptime(dt, fmt) except Exception: outdict['error'] =
我正在使用Python3.6
datetime.datetime.strtime
根据提供的格式解析不同的输入日期值下面是我正在使用的代码
def date_convert(dt, fmt):
outdict = {'result': '', 'error': ''}
try:
outdict['result'] = datetime.strptime(dt, fmt)
except Exception:
outdict['error'] = 'Invalid input date value, expected format is ' + fmt
我面临上述代码的两个问题例如:
date\u转换('181223','%Y%m%d')
对于上述输入,我得到的输出为1812-02-03 00:00:00,但我需要得到的输出为无效格式。如何实现这一点
下面是文件中单个字段的值。我想传递类似['%Y%m%d'、'%m-%d-%Y'、'%d-%b-%Y']的内容,并转换所有输入值
日期字段
2018-23-04
2018-14-04
03-17-18
12-29-17
2018年3月25日
2018年1月29日
Raghunath.尝试使用模块 演示:
from dateutil import parser
d = ['2018-23-04', '2018-14-04', '03-17-18', '12-29-17', '25-Mar-2018', '29-Jan-2018']
for i in d:
print( parser.parse(i, dayfirst=True))
import dateparser
d = ['2018-23-04', '2018-14-04', '03-17-18', '12-29-17', '25-Mar-2018', '29-Jan-2018']
for i in d:
print( dateparser.parse(i))
2018-04-23 00:00:00
2018-04-14 00:00:00
2018-03-17 00:00:00
2017-12-29 00:00:00
2018-03-25 00:00:00
2018-01-29 00:00:00
或
演示:
from dateutil import parser
d = ['2018-23-04', '2018-14-04', '03-17-18', '12-29-17', '25-Mar-2018', '29-Jan-2018']
for i in d:
print( parser.parse(i, dayfirst=True))
import dateparser
d = ['2018-23-04', '2018-14-04', '03-17-18', '12-29-17', '25-Mar-2018', '29-Jan-2018']
for i in d:
print( dateparser.parse(i))
2018-04-23 00:00:00
2018-04-14 00:00:00
2018-03-17 00:00:00
2017-12-29 00:00:00
2018-03-25 00:00:00
2018-01-29 00:00:00
输出:
from dateutil import parser
d = ['2018-23-04', '2018-14-04', '03-17-18', '12-29-17', '25-Mar-2018', '29-Jan-2018']
for i in d:
print( parser.parse(i, dayfirst=True))
import dateparser
d = ['2018-23-04', '2018-14-04', '03-17-18', '12-29-17', '25-Mar-2018', '29-Jan-2018']
for i in d:
print( dateparser.parse(i))
2018-04-23 00:00:00
2018-04-14 00:00:00
2018-03-17 00:00:00
2017-12-29 00:00:00
2018-03-25 00:00:00
2018-01-29 00:00:00
嗨,Rakesh,我已经用过这个模块了。此函数无法处理%m%d%Y Ex:parser.parse('03232018')之类的格式,并且与datetime.strptimeRakesh相比速度非常慢。我得到的值错误:parser.parse('03232018')的月份必须在1..12之内。如何给出此模块的格式是指第二个选项
import dateparser
-->dateparser.parse('03232018')
print(dateparser.parse('181223',['%Y%m%d'))--输出:1812-02-03 00:00:00。打印(dateparser.parse('181223',['%y%m%d'])预计会失败