Python将时间数据转换成datetime.datetime类型

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))
执行结果

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值