Python将时间数据转换成datetime.datetime类型
背景
当数据表中某字段设置为timestamp(6)类型时,在用sql批量插入或更新时,若数据中values为“2022-11-28 14:42:37”时间字符串可能会引发类型报错,故可通过本文函数代码将时间数据进行转换,然后再做插入
函数代码
from datetime import datetime
def datetime_converter(time_data):
"""
将时间戳或时间字符串转换为datetime.datetime类型
:param time_data: int or str
:return:datetime.datetime
"""
if isinstance(time_data, float):
result = datetime.fromtimestamp(int(time_data))
elif isinstance(time_data, int):
result = datetime.fromtimestamp(time_data)
elif isinstance(time_data, str):
if len(time_data) == 10:
result = datetime.strptime(time_data, '%Y-%m-%d')
elif len(time_data) == 19:
result = datetime.strptime(time_data, '%Y-%m-%d %H:%M:%S')
return result
int_timestamp = 1669617757
result_1 = datetime_converter(int_timestamp)
print(result_1, type(result_1))
float_timestamp = 1669617626.0672421
result_2 = datetime_converter(int_timestamp)
print(result_2, type(result_2))
str_timestamp = "2022-11-28 14:42:37"
result_3 = datetime_converter(str_timestamp)
print(result_3, type(result_3))