【问题标题】:Date and time parsing with(ex: 21/12/201115:57) [closed]日期和时间解析(例如:21/12/201115:57)[关闭]
【发布时间】:2020-04-15 06:57:53
【问题描述】:

如何解析日期时间格式:

案例 1:21/12/201115:57

已知: %d%d%d%d%d%d%d%d%d%d%d%d

如果我有分隔符,我会使用 .split 运算符。但因为我没有 有分隔符怎么处理?

期望的输出: 21/12/2011 15:57

案例2:2112201115:57

已知:ddmmyyyyhh:mm(我确定我会收到的格式)

如果我有分隔符,我会使用 .split 运算符。 但是由于我没有分隔符,我该如何处理?

期望的输出: 21/12/2011 15:57

【问题讨论】:

    标签: python regex nlp


    【解决方案1】:

    这个正则表达式应该可以解析你的值:

    (\d{2})(/?)(\d{2})\2(\d{4})(\d{2}:\d{2})
    

    它会查找两位数(天),然后是可选的 /,再查找两位数(月),然后是 /(如果有更早的数字)(使用对第二个捕获组的反向引用),然后是 4 位数(年份),最后是 2 位数,: 和 2 位数(时间)。我们可以用

    代替
    \1/\3/\4 \5
    

    要得到想要的输出结果:

    21/12/2011 15:57
    21/12/2011 15:57
    

    Demo on regex101

    在python中:

    import re
    
    times = ['21/12/201115:57', '2112201115:57']
    for time in times:
        print(re.sub(r'(\d{2})(/?)(\d{2})\2(\d{4})(\d{2}:\d{2})', r'\1/\3/\4 \5', time))
    

    输出:

    21/12/2011 15:57
    21/12/2011 15:57
    

    【讨论】:

      【解决方案2】:

      使用日期时间

      from datetime import datetime
      
      
      
      datetime_str = '21/12/201115:57'
      
      datetime_object = datetime.strptime(datetime_str, '%d/%m/%Y%H:%M')
      
      print(datetime_object)
      

      输出:

      2011-12-21 15:57:00
      

      对于案例 2:

      datetime_object = datetime.strptime(datetime_str, '%d%m%Y%H:%M')
      

      为了更好地理解,请查看以下链接:

      https://www.journaldev.com/23365/python-string-to-datetime-strptime

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-12
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-02
        相关资源
        最近更新 更多