今天遇到一个报错: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点]。
posted on 2018-10-16 15:57  落叶虽美只活一世  阅读(1118)  评论(0编辑  收藏  举报
Live2D