带上午下午的时间字段怎么转换成时间格式呀?

如下图中的时间格式怎么转换成YY/MM/DD HH:MM:SS的时间格式呀?
目前我导入数据库的用的是varchar的字符串格式。
怎么样才能通过python把原数据中的这些数据转换成时间格式?

img

参考GPT和自己的思路:

你好,针对你的问题,我提供以下解答:

首先,将带上午下午的时间字段转换成时间格式需要将字符串格式的时间转换成python中的datetime对象。

在Python中,可以使用strptime()函数将字符串格式时间转化为datetime对象。具体步骤如下:

  1. 使用strptime()函数解析字符串。

  2. 使用strftime()函数将解析后的时间格式化成需要的字符串格式。

下面是示例代码:

import datetime

time_str = "2022-12-31 09:18:15 AM"
time_obj = datetime.datetime.strptime(time_str, "%Y-%m-%d %I:%M:%S %p")
time_format = time_obj.strftime("%y/%m/%d %H:%M:%S")
print(time_format)

执行以上代码,会输出 '22/12/31 09:18:15'。这样就成功将带上午下午格式的时间字段转换成了YY/MM/DD HH:MM:SS格式的时间了。

如果你需要将整个DataFrame中的时间格式转换,你需要对每一个时间字段进行遍历,并应用上述的方法。

希望这个答案能够帮到你!

参考GPT和自己的思路:

你可以用Python的datetime模块对字符串格式的时间进行转换。

具体的做法是:

  1. 定义原字符串格式的时间格式
str_format = '%Y-%m-%d %p %I:%M:%S'
  1. 调用strptime方法将原字符串格式的时间转换成datetime对象
from datetime import datetime
dt = datetime.strptime('2020-10-01 PM 06:30:00', str_format)
  1. 再调用strftime方法把datetime对象转换成指定格式的字符串
print(dt.strftime('%y/%m/%d %H:%M:%S'))
# 输出:20/10/01 18:30:00

上述代码中,str_format定义了原字符串格式的时间格式(注意,因为原格式中含有上下午标识符,所以需要使用%p占位符)。接着,利用strptime方法将原时间字符串转换成datetime对象。

之后,使用strftime方法把datetime对象格式化成指定的时间格式。

最后,你可以将转换后的格式化字符串写入数据库中,也可以通过pandas将其转换为DataFrame后再进行保存。

参考GPT


from datetime import datetime
time_str = '2022-06-01 下午 01:30:00'
time_format = '%!Y(MISSING)-%!m(MISSING)-%!d(MISSING) 下午 %!I(MISSING):%!M(MISSING):%!S(MISSING)'
# 使用strptime函数将字符串转换为时间格式
time_obj = datetime.strptime(time_str, time_format)
# 打印时间对象
print(time_obj)

img

用 strptime 转换一下看看,也可以用正则表达式解析

你点开看看吧,你的这个应该不是存的varchar类型的,只是展示内容而已。一般底层是dateTime。
假如真的是varchar。那就只能使用MySQL的匹配,替换函数进行每个字段替换了。
MySQL函数讲解:
https://blog.csdn.net/lydms/article/details/122593057