42

例如,我正在尝试将 2008-09-26T01:51:42.000Z 转换为 09/26/2008。完成此任务的最简单方法是什么?

4

5 回答 5

51

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

import dateutil.parser

d = dateutil.parser.parse('2008-09-26T01:51:42.000Z')
print(d.strftime('%m/%d/%Y'))  #==> '09/26/2008'
于 2008-10-18T17:33:30.410 回答
37

我知道这确实是个老问题,但是您可以使用 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)
于 2016-08-25T21:30:54.400 回答
21
>>> 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'

有关更多信息,请参阅 Pythontime模块的文档。

于 2008-10-18T09:01:59.850 回答
3

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

于 2008-10-18T14:13:19.553 回答
-3
def datechange(datestr):
dateobj=datestr.split('-')
y=dateobj[0]
m=dateobj[1]
d=dateobj[2]
datestr=d +'-'+ m +'-'+y
return datestr

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

于 2010-05-25T12:32:41.023 回答