python - 将时间戳转换为日期时间错误的 AM/PM
问题描述
当我使用 am/pm 将 datetime 转换为时间戳并将时间戳再次返回到 datetime 时,它总是返回“am”,即使我输入的实际日期时间是“pm”
这是我的代码。
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
那么我该如何解决这个问题
解决方案
您的问题出在格式字符串中,%p
需要用于解析时间(请参阅文档%I
中的第三条注释):
- 与 strptime() 方法一起使用时,如果 %I 指令用于解析小时,则 %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
推荐阅读
- php - PHP将混合顺序和关联数组转换为关联数组
- python - 如何使用 Python 确定列表中的数字是否最初增加(或保持不变)然后减少(或保持不变)?
- java - 使用 Jsoup 简单登录不起作用
- powershell - 使用 Qwinsta 导出断开连接会话的缩短列表
- gcc - 找不到 libssh 符号错误 gcc
- javascript - 从下拉列表中选择选项时如何更改视图数据,而无需刷新页面?
- r - 使用 aes(x = column) 时出错,在 ggplo2 中与 aes(x = dataset$column) 完美配合,我缺少什么包?
- java - 从 JavaFX 调用 Controller 方法时,为什么不将非静态方法更改为静态修复“无法引用非静态方法”错误?
- jquery - jQuery将图像标题放在标题字段中
- machine-learning - Keras去噪自动编码器(表格数据)