我从Python收到以下错误:
ValueError: time data '05/10/2015 00:19:49 AM' does not match format '%d/%m/%Y %I:%M:%S %p'
我认为原因是数据集与datetime
库识别12午夜时间的方式略有不一致。我认为可能需要通过将00
更改为12
来纠正。
例如,以下数据显示如下:
05/10/2015 12:59:12 PM
数据未使用24小时制。有没有人有办法解决这个问题?
答案 0 :(得分:1)
简单try
- except
怎么样,首先尝试%I
,如果获得%H
则使用ValueError
:
date_string = '05/10/2015 00:19:49 AM'
try:
date = time.strptime(date_string, '%d/%m/%Y %I:%M:%S %p')
except ValueError:
date = time.strptime(date_string, '%d/%m/%Y %H:%M:%S %p')
print(time.strftime('%d/%m/%Y %H:%M:%S %p', date))
输出:
05/10/2015 00:19:49 AM
%I
应适用于12小时格式的所有日期,但小时为00
的日期除外。对于这些情况,使用%H
的24小时格式应该可以正常工作。
与datetime
:
import datetime
date_string = '05/10/2015 00:19:49 AM'
try:
date = datetime.datetime.strptime(date_string, '%d/%m/%Y %I:%M:%S %p')
except ValueError:
date = datetime.datetime.strptime(date_string, '%d/%m/%Y %H:%M:%S %p')
print(date.strftime('%d/%m/%Y %H:%M:%S %p'))
输出:
05/10/2015 00:19:49 AM