Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用%p在python中将包含AM/PM的字符串转换为datetime_Python_Datetime_Strptime_Strftime - Fatal编程技术网

如何使用%p在python中将包含AM/PM的字符串转换为datetime

如何使用%p在python中将包含AM/PM的字符串转换为datetime,python,datetime,strptime,strftime,Python,Datetime,Strptime,Strftime,我需要转换格式为'2000-01-01 12:00:00 AM'的字符串,但无论是AM还是PM,结果都是相同的(参见下面的示例) 输出为: '2000-01-01T12:00:00' '2000-01-01T12:00:00' '2000-01-01T06:00:00' '2000-01-01T06:00:00' 我认为如果上午12点是午夜或中午,这可能是一个没有定义的问题,但即使在其他不同的时间执行相同的代码,结果仍然是一样的: datetime.strptime('2000-01-01

我需要转换格式为
'2000-01-01 12:00:00 AM'
的字符串,但无论是AM还是PM,结果都是相同的(参见下面的示例)

输出为:

'2000-01-01T12:00:00'
'2000-01-01T12:00:00'
'2000-01-01T06:00:00'
'2000-01-01T06:00:00'
我认为如果上午12点是午夜或中午,这可能是一个没有定义的问题,但即使在其他不同的时间执行相同的代码,结果仍然是一样的:

datetime.strptime('2000-01-01 06:00:00 AM', frmt).isoformat()
datetime.strptime('2000-01-01 06:00:00 PM', frmt).isoformat()
输出为:

'2000-01-01T12:00:00'
'2000-01-01T12:00:00'
'2000-01-01T06:00:00'
'2000-01-01T06:00:00'
网站上说我使用的格式应该有效,但事实并非如此。我该怎么办?

您可以使用来解析任何日期时间字符串,而不提供格式字符串,这在模块中提供

您可以使用解析任何日期时间字符串,而不提供格式字符串,这在模块中提供


这就是为什么我使用箭头。只是让这一切变得更容易

import arrow
frmt = 'YYYY-MM-DD HH:mm:ss A'
print(arrow.get('2000-01-01 12:00:00 AM', frmt))
print(arrow.get('2000-01-01 12:00:00 PM', frmt))
#datetime
print(arrow.get('2000-01-01 12:00:00 AM', frmt).datetime)
print(arrow.get('2000-01-01 12:00:00 PM', frmt).datetime)
#isoformat
print(arrow.get('2000-01-01 12:00:00 AM', frmt).isoformat())
print(arrow.get('2000-01-01 12:00:00 PM', frmt).isoformat())

这就是为什么我使用箭头。只是让这一切变得更容易

import arrow
frmt = 'YYYY-MM-DD HH:mm:ss A'
print(arrow.get('2000-01-01 12:00:00 AM', frmt))
print(arrow.get('2000-01-01 12:00:00 PM', frmt))
#datetime
print(arrow.get('2000-01-01 12:00:00 AM', frmt).datetime)
print(arrow.get('2000-01-01 12:00:00 PM', frmt).datetime)
#isoformat
print(arrow.get('2000-01-01 12:00:00 AM', frmt).isoformat())
print(arrow.get('2000-01-01 12:00:00 PM', frmt).isoformat())

你可以使用dateutil模块,在@GustavoMaia下面检查我的答案你可以使用dateutil模块,在@GustavoMaia下面检查我的答案