将12小时格式转换为24小时Python

2024-10-19 14:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

输入数据来自一个CSV文件,其中日期在AM/PM中被格式化,然后Pandas库用于将CSV导出到sqlite数据库表中。在

Python2.7或3是否有任何优雅的解决方案或内置函数来将这些12小时的日期转换为24小时格式,最好是在写入数据库之前?我需要它来比较将被导入数据库的日期。在

使用以下代码:

import pandas as pd
import datetime as dt

from sqlite3 import connect
from glob import iglob
from os.path import splitext, basename


dbName = 'logs'
logsDir = 'event_logs'

def csvToDb(db, filename):
    conn = connect(db)
    df = pd.read_csv(filename,encoding='utf-8')
    df.to_sql(splitext(basename(filename))[0], conn)
    conn.close()


def csvLogsToDb(directory):
    for filename in iglob(directory + '/*.csv'):
        print('WRITING TO DB | ' + filename)
        csvToDb(dbName, filename)

    print("DONE")


if __name__ == "__main__":
    csvLogsToDb(logsDir)

我删除了大部分数据并保留了最相关的数据,但总而言之,这是我当前的输入和需要的输出

输入CSV数据:

^{pr2}$

电流输出

COL1    
    Information    
    Information
    Information

COL2
    2017/01/06 9:06:02 AM
    2017/01/06 9:02:44 AM
    2017/01/06 8:56:48 PM

预期产量

COL1
    Information
    Information
    Information

COL2
    2017-01-06 09:06:02
    2017-01-06 09:02:44
    2017-01-06 20:56:48

Tags: csv数据fromimport数据库informationasconnect
1条回答
网友
1楼 · 发布于 2024-10-19 14:32:23

您可以使用datetime包来完成此操作

from datetime import datetime
data = '2:35 PM'
standard_time_format = datetime.strptime(data, "%I:%M %p")
only_in_24_hour_format = datetime.strftime(standard_time_format, "%H:%M")
print only_in_24_hour_format
print standard_time_format

这将得到以下输出

14:35

1900-01-01 14:35:00

相关问题 更多 >