Python ISO 8601日期时间格式:将11:05:14 PM解析为23:05:14

Python ISO 8601日期时间格式:将11:05:14 PM解析为23:05:14,python,csv,datetime,iso8601,Python,Csv,Datetime,Iso8601,我目前正在获取ISO格式,但我不确定如何获取ISO(8601)格式 当我将以下日期08/10/2015 11:05:14 PM转换为ISO格式时,我得到2015-08-10T11:05:14+0000 我最好能拿到2015-08-10T23:05:14+0000 将日期编辑为iso格式的行是: new[3] = datetime.strptime(new[3], "%m/%d/%Y %H:%M:%S %p").isoformat() + '+0000' 代码: 输入格式到底是什么 当我将格式字

我目前正在获取ISO格式,但我不确定如何获取ISO(8601)格式

当我将以下日期08/10/2015 11:05:14 PM转换为ISO格式时,我得到2015-08-10T11:05:14+0000

我最好能拿到2015-08-10T23:05:14+0000

将日期编辑为iso格式的行是:

new[3] = datetime.strptime(new[3], "%m/%d/%Y %H:%M:%S %p").isoformat() + '+0000'
代码:


输入格式到底是什么

当我将格式字符串更改为
%m/%d/%y%H:%m:%S
时,以下

print datetime.strptime('08/10/15 23:05:14', '%m/%d/%y %H:%M:%S').isoformat() + '+0000'
给出正确的结果:

2015-08-10T23:05:14+0000
编辑

感谢您提供的附加信息,如果您只需将
%H
替换为
%I
,它应该可以工作:

 print datetime.strptime('8/10/2015 11:05:14 PM', '%m/%d/%Y %I:%M:%S %p').isoformat() + '+0000'
从:

%I
-小时(12小时时钟)作为零填充十进制数


只有使用
%I
时,才会考虑am/pm部分。

使用
%p
指令时,应使用
%I
格式解析小时

从文档中:

与strptime()方法一起使用时,%p指令仅在使用%I指令分析小时时影响输出小时字段


您的模式是
%H:%M:%S%p
,使用
%H
您不需要
%p
@hjpotter92-我认为%p解决了日期时间的AM/PM部分,对吗?是的,但是24小时时钟。AM/PM与该格式无关。详细阅读您的问题,请尝试使用
%I
而不是
%H
。我的输入格式如下:['3/11/2016 5:48:49 PM','80008761','246','0.700481055630595','1582422.0999997','1582422.0999997','9998']第一个字段。
 print datetime.strptime('8/10/2015 11:05:14 PM', '%m/%d/%Y %I:%M:%S %p').isoformat() + '+0000'