【问题标题】:Convert date from dd-mm-yy to dd-mm-yyyy using python [duplicate]使用python将日期从dd-mm-yy转换为dd-mm-yyyy [重复]
【发布时间】:2023-03-30 15:20:02
【问题描述】:

我有一个日期输入“date_dob”,即“20-Apr-53” 我尝试使用以下代码将其转换为格式 yyyy-mm-dd:

print pd.to_datetime(date_dob,format = '%d-%b-%y')

返回“2053-04-20 00:00:00”而不是“1953-04-20 00:00:00”

【问题讨论】:

    标签: python date datetime


    【解决方案1】:

    您需要明确检查年份,然后将其减去 100 年:

    >>> import datetime
    
    >>> my_date = '20-Apr-53'
    >>> d = datetime.datetime.strptime(my_date, '%d-%b-%y')
    >>> d
    datetime.datetime(2053, 4, 20, 0, 0)
    #                   ^ year = 2053  
    >>> if d.year > 2000:
    ...     d = d.replace(year=d.year-100)  # subtract year by 100
    ... 
    >>> d
    datetime.datetime(1953, 4, 20, 0, 0)
    #                   ^ year = 1953
    >>> d.strftime('%Y-%m-%d') # %Y instead of %y, reason mentioned below
    '1953-04-20'
    #  ^ all four digit of year
    

    使用%Y 而不是%y 因为:

    • %y:显示年份的最后两位数

    • %Y:显示所有四位年份

    【讨论】:

      【解决方案2】:

      官方doc是你的朋友。咨询一下;-)

      %y -> 没有世纪的年份,作为零填充的十进制数。

      %Y -> 年份,世纪为十进制数。

      所以使用这种方法

      format='%d-%b-%Y'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-25
        • 2022-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 2012-03-05
        • 2015-03-19
        相关资源
        最近更新 更多