关于datetime:如何将YYYY-MM-DDTHH:mm:ss.000Z时间格式转换为Python中的MM / DD / YYYY时间格式?

How do you convert YYYY-MM-DDTHH:mm:ss.000Z time format to MM/DD/YYYY time format in Python?

例如,我试图将2008-09-26t01:51:42.000z转换为2008年9月26日。最简单的方法是什么?


最简单的方法是使用dateutil.parser.parse()将日期字符串解析为一个时区感知的日期时间对象,然后使用strftime()获取所需的格式。

1
2
3
4
import dateutil.parser

d = dateutil.parser.parse('2008-09-26T01:51:42.000Z')
print(d.strftime('%m/%d/%Y'))  #==> '09/26/2008'


我知道这是一个很老的问题,但您可以用python datetime.strptime()来解决它。

1
2
3
4
>>> from datetime import datetime
>>> date_format ="%Y-%m-%dT%H:%M:%S.%fZ"
>>> datetime.strptime('2008-09-26T01:51:42.000Z', date_format)
datetime.datetime(2008, 9, 26, 1, 51, 42)


1
2
3
4
5
>>> import time
>>> timestamp ="2008-09-26T01:51:42.000Z"
>>> ts = time.strptime(timestamp[:19],"%Y-%m-%dT%H:%M:%S")
>>> time.strftime("%m/%d/%Y", ts)
'09/26/2008'

有关详细信息,请参阅python time模块的文档。


2008-09-26T01:51:42.000Z是一个ISO8601日期,格式可能非常多样。如果您想解析这些日期,请参见python wiki中的"使用时间"部分。它包含一些到模块的有用链接。


1
2
3
4
5
6
7
def datechange(datestr):
dateobj=datestr.split('-')
y=dateobj[0]
m=dateobj[1]
d=dateobj[2]
datestr=d +'-'+ m +'-'+y
return datestr

你可以做一个这样的函数,它获取日期对象,并以所需的日期格式返回日期。