【问题标题】:How to parse ISO string?如何解析 ISO 字符串?
【发布时间】:2017-03-22 19:34:54
【问题描述】:

它没有被解析,只是打印出我试图解析的相同 ISO 字符串:2/12/17 00:00:52

我做错了什么?提前谢谢你,一定会投票并接受答案

【问题讨论】:

    标签: datetime iso python-dateutil


    【解决方案1】:

    这是因为datetime 变量的表示(即dateutil.parser.parse 的结果,顺便说一句)is to print the ISO representation of the date.

    但是,如果您存储变量而不是在解析后简单地打印它,您可以打印日期的每个单独部分:

    date = dateutil.parser.parse("2017-02-16 22:11:05+00:00")
    print(date.year)
    2017
    
    print(date.month)
    2
    
    print(date.day)
    16
    
    print(date.hour)
    22
    
    print(date.minute)
    11
    
    print(date.second)
    5
    

    干杯!

    【讨论】:

    • 非常感谢!
    【解决方案2】:

    你是什么意思它没有解析...它解析了但是你要求再次打印出来它把它变成一个字符串:

    >>> import dateutil.parser
    >>> date = dateutil.parser.parse("2017-02-16 22:11:05+00:00")
    >>> repr(date)
    'datetime.datetime(2017, 2, 16, 22, 11, 5, tzinfo=tzutc())'
    >>> date.timetuple()
    time.struct_time(tm_year=2017, tm_mon=2, tm_mday=16, tm_hour=22, 
                     tm_min=11, tm_sec=5, tm_wday=3, tm_yday=47, tm_isdst=0)
    >>> str(date)
    2017-02-16 22:11:05+00:00
    

    【讨论】:

      【解决方案3】:

      我将可耻地插入我用于日期时间的库 pendulum

      import pendulum
      
      parsed_time = pendulum.parse('2017-02-16 22:11:05+00:00')
      
      parsed_time.to_formatted_date_string()
      'Feb 16, 2017'
      

      还有更多选项,让处理日期时间变得超级简单。

      【讨论】:

        【解决方案4】:

        如果您只想打印年、月、日、小时、分钟和秒,您可以这样做:

        x=dateutil.parser.parse("2017-02-16 22:11:05+00:00")
        print ("<%s>") % (x.strftime('%Y-%m-%d at %H:%M:%S'))
        # Output <2017-02-16 at 22:11:05>
        

        【讨论】:

          猜你喜欢
          • 2021-01-17
          • 1970-01-01
          • 2017-06-10
          • 1970-01-01
          • 2014-11-25
          • 2021-10-07
          • 2020-09-04
          • 1970-01-01
          • 2020-05-20
          相关资源
          最近更新 更多