Python中datetime时间戳转时间的详细指南

一、 10 位 时间戳 ,秒级 转换为时间

方式一:

import time

timeStamp = 1717149862
timeArray = time.localtime(timeStamp)
timeStr = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(timeStr)

'''
输出:
2024-05-31 18:04:22
'''

方式二:

import datetime

timeStamp = 1717149862
dateArray = datetime.fromtimestamp(timeStamp)
timeStr = dateArray.strftime("%Y-%m-%d %H:%M:%S")
print(timeStr)

# 转换为 UTC 时间,相差8小时
timeStamp = 1717149862
dateArray = datetime.utcfromtimestamp(timeStamp)
timeStr = dateArray.strftime("%Y-%m-%d %H:%M:%S")
print(timeStr) 


'''
输出:
2024-05-31 18:04:22
2024-05-31 10:04:22
'''

二、 13位时间戳转换为时间字符串

方式一:

import datetime
 
def timestamp_to_strtime(timestamp: int):
    """将 13 位整数的毫秒时间戳转化成本地普通时间 (字符串格式)
    :param timestamp: 13 位整数的毫秒时间戳 (1717149892810)
    :return: 返回字符串格式 {str} '2024-05-31 18:03:41'
    """
    timeArray =  datetime.datetime.fromtimestamp(timestamp / 1000.0)
    strtime =timeArray.strftime('%Y-%m-%d %H:%M:%S.%f')  # .%f 带不带都可
    return strtime
 
timeStr = timestamp_to_strtime(1717149892810)
print(timeStr)
 
 
'''
输出:
2024-05-31 18:04:52.810000
'''

方式二:

import datetime

def timestamp_to_str(timestamp: int, time_format: str = "%Y-%m-%d %H:%M:%S") -> str:
    """
    时间戳转换为时间字符串
    :param timestamp: 时间戳
    :param time_format: 时间字符串格式 default: %Y-%m-%d %H:%M:%S
    :return: 时间字符串
    Usage::
      >>> timestamp_to_str(1717149892810, "%Y-%m-%d")
      2024-05-31
      >>> timestamp_to_str(1717149892810)
      2024-05-31 18:04:52
      >>> timestamp_to_str(1717149892810, "%Y-%m-%d %H:%M:%S.%f")
      2024-05-31 18:04:52.000000

    """
    try:
    	# 13 位 时间戳,毫秒级
        datetime_type = datetime.datetime.fromtimestamp(timestamp // 1000)
        # 10 位 时间戳,秒级
        # datetime_type = datetime.datetime.fromtimestamp(timestamp)
        return datetime_type.strftime(time_format)
    except (TypeError, ValueError):
        raise ValueError("Invalid timestamp format!")

timeStr = timestamp_to_str(1717149892810)
print(timeStr)


'''
输出:
2024-05-31 18:04:52
'''

'''
参考:
时间戳转换
https://tool.lu/timestamp/

Python3日期与时间戳转换的几种方法
https://zhuanlan.zhihu.com/p/67950661

Python时间戳和时间类型及其互相转换
https://www.cnblogs.com/sablier/p/14251436.html

【python】 datetime、13位和10位时间戳、字符串的相互转换
https://blog.csdn.net/weixin_42221654/article/details/131477857

python时间相互转换
https://py-code.readthedocs.io/zh/latest/Python/time_utils/index.html
'''

作者:她不喜欢喝咖啡

物联沃分享整理
物联沃-IOTWORD物联网 » Python中datetime时间戳转时间的详细指南

发表回复