当我将日期时间转换为带有am / pm的时间戳并再次将时间戳返回至datetime时,即使我输入的实际日期时间具有“ pm”,它也始终返回“ am”
这是我的代码。
from datetime import date, datetime
# convert datetime to timestamp
dt_tsp = datetime.timestamp(datetime.strptime('09 June 2020 02:47 PM', '%d %B %Y %H:%M %p'))
# convert timestramp to datetime
tsp_dt = datetime.fromtimestamp(dt_tsp).strftime('%d %B %Y %H:%M %p')
# result
print(tsp_dt)
# 09 June 2020 02:47 AM // alway am
那我该如何解决这个问题
答案 0 :(得分:1)
您的问题出在您的格式字符串中,%p
需要与%I
一起使用来解析小时(请参阅documentation中的第三注):
- 与strptime()方法一起使用时,仅当%I指令用于解析%p指令时,%p指令才会影响输出小时字段。 小时。
因此,将您的代码更改为使用%I
而不是%H
:
from datetime import date, datetime
dt_tsp = datetime.timestamp(datetime.strptime('09 June 2020 02:47 PM', '%d %B %Y %I:%M %p'))
tsp_dt = datetime.fromtimestamp(dt_tsp).strftime('%d %B %Y %I:%M %p')
print(tsp_dt)
输出:
09 June 2020 02:47 PM
答案 1 :(得分:0)
%H
表示24小时制。要使用12小时制,请将%H
替换为%I
。将来请阅读文档…