首页 > 解决方案 > 如何将 sqlite3 日期时间转换为 24 小时

问题描述

我正在解析一个带有日期时间字符串的 JSON 文件,如下所示:

"col_datetime": "10/18/2017 2:45:00 PM"

我正在使用 python 的 datetime.strptime 使它成为一个 sqlite 日期时间:

datetime.strptime(col_datetime, '%m/%d/%Y %H:%M:%S %p')

这存储在 sqlite 表中,如下所示:

2017-10-18 02:45:00.000000

但是当我尝试在 sqlite3 中使用 strftime 解析它时,似乎没有得到 PM

strftime('%H:%M',col_datetime)

这将返回:

2:45

代替:

14:45

对此有什么想法吗?

标签: pythonsqlite

解决方案


您需要使用%I12 小时格式strptime代替%H.

这是一个示例,您可以看到它在更改后按预期工作:

>>> datetime.strptime('10/18/2017 2:45:00 PM', '%m/%d/%Y %H:%M:%S %p')
datetime.datetime(2017, 10, 18, 2, 45)
>>> datetime.strptime('10/18/2017 2:45:00 PM', '%m/%d/%Y %I:%M:%S %p')
datetime.datetime(2017, 10, 18, 14, 45)

推荐阅读