今天遇到一个报错:ValueError: time data '2018-10-10(Wednesday) AM0:50' does not match format '%Y-%m-%d(%A) %p%I:%M'。
代码追踪到如下几行:
class Chatsonline: def __init__(self,filename, sheet_name,template_id): self.filename = filename self.sheet_name = sheet_name self.template_id = template_id self.conn = pymysql.connect(host=host, user=user, password=password, port=port, charset=charset, db=db) self.cur = self.conn.cursor() def format_datetime(self,string): date_str = string.replace(u"年", "-").replace(u"月", "-").replace(u"日", "").replace(u"星期一", "Monday").replace(u"星期二", "Tuesday").replace(u"星期三", "Wednesday").replace(u"星期四", "Thursday").replace(u"星期五", "Friday").replace(u"星期六", "Saturday").replace(u"星期天", "Sunday") import re if u"中午" in string: hours = int(re.split(u"[中午:]",date_str)[-2]) if hours >=12: date_str = date_str.replace(u"中午", "PM") else: date_str = date_str.replace(u"中午", "AM") else: '''20181016约定没有凌晨只分上下午,凌晨0点应该对应上午12点,12小时制为[AM12,AM1,AM2,...,AM11,PM12,PM1,PM2,...,PM23]''' date_str = date_str.replace(u"上午", "AM").replace(u"下午", "PM").replace(u"凌晨", "AM").replace(u"晚上", "PM") return datetime.strptime(date_str, "%Y-%m-%d(%A) %p%I:%M")
转换时间格式:"%Y-%m-%d(%A) %p%I:%M"
%Y:年 %m:月 %d:日 %A:星期全名 %p:AM/PM %I:12小时制 %M:分钟
在文件上传的时候,时间列原始数据为:2018年10月10日(星期三) 凌晨0:50,而在十二小时制中,表示凌晨0点应该为AM12,所以约定以后上传文件时间只有上午下午之分,
12小时制为[AM12,AM1,AM2,...,AM11,PM12,PM1,PM2,...,PM23],对应24小时制[0点,1点,2点,...,11点,12点,1点,2点,...,23点]。