【问题标题】:Convert strange date format to standard date format将奇怪的日期格式转换为标准日期格式
【发布时间】:2012-10-28 20:32:32
【问题描述】:

在瑞典,我们有时会使用一种奇怪的日期格式,例如新年是 31/12。如果我将此格式作为字符串,可以是 1/1 到 31/12 之间的任何日期,如果我们假设是今年,我如何使用 Python 进入标准日期格式(格式为 2012-01 -01 和 2012-12-31)可以作为日期存储在 mySQL 数据库中。

【问题讨论】:

    标签: python mysql date format


    【解决方案1】:

    只需拆分两个值,将它们映射为整数并更新datetime.date() 实例:

    import datetime
    day, month = map(int, yourvalue.split('/'))
    adate = datetime.date.today().replace(month=month, day=day)
    

    通过使用datetime.date.today(),我们得到了当前年份。

    演示:

    >>> import datetime
    >>> somevalue = '31/12'
    >>> day, month = map(int, somevalue.split('/'))
    >>> datetime.date.today().replace(month=month, day=day)
    datetime.date(2012, 12, 31)
    >>> someothervalue = '1/1'
    >>> day, month = map(int, someothervalue.split('/'))
    >>> datetime.date.today().replace(month=month, day=day)
    datetime.date(2012, 1, 1)
    

    或者,您可以使用datetime.strptime() method 来解析这些日期,但之后您必须手动更正年份(如果没有解析年份,它将使用 1900 作为默认值):

    adate = datetime.datetime.strptime(yourvalue, '%d/%m').date()
    adate = adate.replace(year=datetime.date.today().year)
    

    【讨论】:

      【解决方案2】:

      这种格式没有什么奇怪的:)

      您可以使用datetime 模块:

      import datetime
      d = datetime.datetime.strptime('31/12', '%d/%m').date().replace(year=2012)
      print d
      
      >> datetime.date(2012, 12, 31)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-13
        • 2012-05-06
        • 1970-01-01
        • 2017-12-20
        • 2018-02-12
        • 2016-12-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多