Python 将自定义字符串转换为日期时间格式

Python 将自定义字符串转换为日期时间格式,python,date,converter,Python,Date,Converter,我有一个日期时间数据字符串列表,如下所示: list = ["2016-08-02T09:20:32.456Z", "2016-07-03T09:22:35.129Z"] 我想将其转换为示例格式(对于第一项): 我试过这个: from datetime import datetime for time in list: date = datetime.strptime(time, '%Y %m %d %I %R') 但返回错误: ValueError:“R”是格式为“%Y%m%d%I

我有一个日期时间数据字符串列表,如下所示:

list = ["2016-08-02T09:20:32.456Z", "2016-07-03T09:22:35.129Z"]
我想将其转换为示例格式(对于第一项):

我试过这个:

from datetime import datetime
for time in list:
    date = datetime.strptime(time, '%Y %m %d %I %R')
但返回错误:

ValueError:“R”是格式为“%Y%m%d%I%R”的错误指令

谢谢你的帮助

s = "2016-08-02T09:20:32.456Z"
d = datetime.strptime(s, "%Y-%m-%dT%H:%M:%S.%fZ")

使用
d.strftime
()。

您的代码中有几个问题:

  • %R
    似乎不是(这是您的错误,我认为您正在寻找
    %p
  • strtime中的格式是输入的格式,而不是输出的格式
  • 您正在使用
    list
    time
    作为名称变量,这是错误的;]
因此,您可以首先将时间转换为正确的datetime对象:

>>> t='2016-08-02T09:20:32.456Z'
>>> d=datetime.strptime(t, "%Y-%m-%dT%H:%M:%S.%fZ")
>>> d
datetime.datetime(2016, 8, 2, 9, 20, 32, 456000)
然后使用strftime将此对象转换为字符串

>>> datetime.strftime(d, "%m/%d/%Y %I:%M:%S %p")
'08/02/2016 09:20:32 AM'

您使用的日期格式与列表中的项目不匹配。那么
%R
应该是什么意思呢?应该是指24小时内的时间:奇怪,它没有出现在官方文档中:感谢您提供更好的答案和解释!
>>> datetime.strftime(d, "%m/%d/%Y %I:%M:%S %p")
'08/02/2016 09:20:32 AM'