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

时间:2008-10-18 08:53:03

标签: python datetime

例如,我正在尝试将2008-09-26T01:51:42.000Z转换为09/26/2008。实现这一目标的最简单方法是什么?

5 个答案:

答案 0 :(得分:34)

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

import dateutil.parser

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

答案 1 :(得分:19)

我知道这是一个很老的问题,但你可以用python datetime.strptime()来做到这一点

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

答案 2 :(得分:16)

>>> 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模块的文档。

答案 3 :(得分:3)

2008-09-26T01:51:42.000Z是ISO8601的日期,格式可以非常多样化。如果要解析这些日期,请参阅working with time上的python wiki。它包含一些有用的模块链接。

答案 4 :(得分:-1)

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

你可以创建一个这样的函数,它接受日期对象,并以所需的日期格式返回日期....