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

在python中将“year-month-dayT11:04:11.373Z”格式化为仅y/m/d

  •  -1
  • Printer  · 技术社区  · 1 年前

    我在试图将日期的格式“2022-12-10T11:04:11.373Z”更改为年/月/日时遇到了困难。 当我读到其他帖子时,这并没有帮助,我如何接受y/m/d输入,并将格式化的日期与输入的日期进行比较? 谢谢你的阅读,请帮帮我!

    我试过使用约会时间、脱衣舞和其他一些东西,但都不起作用。

    1 回复  |  直到 1 年前
        1
  •  0
  •   Community Egal    1 年前

    如果我正确地回答了你的问题,我认为你正在寻找“日期时间模块”(你已经提到过),但你也需要知道给定日期的格式字符串以及如何使用格式字符串。一旦知道了要处理的数据的格式,就可以解析任何日期字符串,只要它的格式正确,就可以将其转换为日期时间对象,并进行比较和其他操作,而不考虑每个日期的原始格式。谷歌要传递给datetime“strftime”/“strptime”方法的格式,以获取“%”格式说明符的含义;他们中有不少。下面是一个使用您提供的两种格式的非常简单的示例:

    #!/usr/bin/python
    
    import datetime
    import sys
    import argparse
    
    # Correctly fomatted command line args.
    string_date1=sys.argv[1]
    string_date2=sys.argv[2]
    
    # Put the strings into datetime objects.
    datetime_date1=datetime.datetime.strptime(string_date1,"%Y-%m-%dT%H:%M:%S.%fZ")
    datetime_date2=datetime.datetime.strptime(string_date2,"%Y/%m/%d")
    
    # Here are the dates packaged up into datetime objects.
    print("Date 1: ",datetime_date1)
    print("Date 2: ",datetime_date2)
    
    # Compare
    print ("Date 1 > date 2: ", datetime_date1 > datetime_date2);
    print ("Date 2 > date 1: ", datetime_date2 > datetime_date1);
    print ("Dates are equal? ", datetime_date1 == datetime_date2);
    print ("Dates are not equal? ", datetime_date1 != datetime_date2);
    

    使用和输出:

    $ ./rudimentary_date_compare.py "2021-02-01T20:42:11.393Z" "2022/01/04"
    
    Date 1:  2021-02-01 20:42:11.393000
    
    Date 2:  2022-01-04 00:00:00
    
    Date 1 > date 2:  False
    
    Date 2 > date 1:  True
    
    Dates are equal?  False
    
    Dates are not equal?  True