代码之家  ›  专栏  ›  技术社区  ›  William

如何在Python中将字符串转换为日期

  •  3
  • William  · 技术社区  · 3 年前

    我有一个字符串:

    dat="012915"
    

    我想将其转换为日期:

    01-29-2015
    

    我试过:

    import datetime
    from datetime import datetime
    dat="012915"
    dat = datetime.strptime(dat, '%m%d%Y').date()
    dat
    

    但失败了:

    ValueError: time data '01-29-15' does not match format '%m%d%Y'
    
    3 回复  |  直到 3 年前
        1
  •  3
  •   hs-    3 年前

    %Y 适用于全年
    %y 是年份的缩写

    你的代码很好,只需将year指令更改为小写即可 y 会做的。

    import datetime
    from datetime import datetime
    dat="012915"
    dat = datetime.strptime(dat, '%m%d%y').date()
    dat
    
        2
  •  2
  •   Buddy Bob Youngkhaf    3 年前

    我想你在找

    import datetime
    from datetime import datetime
    dat="012915"
    #lower %y
    dat = datetime.strptime(dat, '%m%d%y').date()
    print(dat)
    

    这会给你

    2015-01-29
    
        3
  •  2
  •   Rain    3 年前

    尝试一下;将格式字符串更改为“%m%d%y”似乎有效。查看python文档:

    %y不带世纪的年份,用零填充的十进制数表示。

    %Y以世纪为小数的年份。

    所以第一个是你需要的。来源: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes

        4
  •  0
  •   CoderCookie10    3 年前
    import datetime
    from datetime import datetime
    dat="012915"
    dat = datetime.strptime(dat, '%m%d%y').date()
    print(dat)
    

    更改 %Y %y 。如果你想使用 Y ,将数据更改为 '01292015' . y% 格式为 15 虽然 Y 格式为 2015 .

        5
  •  0
  •   Francisco Puga    3 年前
    from datetime import datetime
    date_str = '012915'
    date_obj = datetime.strptime(date_str, '%m/%d/%y')
    
    print("The type of the date is now",  type(date_obj))
    print("The date is", date_obj)