如何解析ISO字符串?

时间:2017-03-22 19:34:55

标签: datetime iso python-dateutil

它不会被解析,只打印出我正在尝试解析的相同ISO字符串:2/12/17 00:00:52

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

4 个答案:

答案 0 :(得分:1)

这是因为datetime变量的表示(dateutil.parser.parse,btw的结果)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

干杯!

答案 1 :(得分:0)

你的意思是什么它没有解析......它确实然后你要求再将它打印出来然后把它变成一个字符串:

>>> 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

答案 2 :(得分:0)

我会羞辱地插入我用于日期时间的库pendulum

import pendulum

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

parsed_time.to_formatted_date_string()
'Feb 16, 2017'

还有更多选项,使日期时间变得非常容易。

答案 3 :(得分:0)

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

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>