容易出问题,但这让我烦恼:
说我有这样的字符串:
test = '2015-08-12 13:07:32'
Run Code Online (Sandbox Code Playgroud)
要将其转换为日期时间对象并将其更改为AM/PM规范,这不应该工作吗?
datetime.datetime.strptime(test, '%Y-%m-%d %I:%M:%S %p')
Run Code Online (Sandbox Code Playgroud)
我收到这样的错误:
ValueError: time data '2015-08-12 13:07:32' does not match format '%Y-%m-%d %I:%M:%S %p'
此外,奖励积分:
如果我已经有日期时间格式的东西,我该如何从该状态更改它?(如果我想将它保留为日期时间对象,只需将其重新格式化为AM/PM)
datetime.strptime()用于将字符串转换为日期时间对象,使用strptime()时必须指定字符串中日期/时间的正确格式.
在您的情况下,格式应为 - '%Y-%m-%d %H:%M:%S'.
示例 -
>>> test = '2015-08-12 13:07:32'
>>> import datetime
>>> datetime.datetime.strptime(test, '%Y-%m-%d %H:%M:%S')
datetime.datetime(2015, 8, 12, 13, 7, 32)
Run Code Online (Sandbox Code Playgroud)
如果您真正想要的是将日期时间作为字符串返回AM/PM,那么您需要使用strftime()它将其转换回您想要的格式的字符串,在这种情况下格式为 - '%Y-%m-%d %I:%M:%S %p'.示例 -
>>> datetime.datetime.strptime(test, '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d %I:%M:%S %p')
'2015-08-12 01:07:32 PM'
Run Code Online (Sandbox Code Playgroud)
datetime 对象内部不存储(并且不必存储)AM/PM信息,因为可以从小时轻松计算.
| 归档时间: |
|
| 查看次数: |
12349 次 |
| 最近记录: |