Python时间戳与日期格式相互转换指南

栗子
栗子
发布时间:2026-10-12 | 2人浏览过
原创

本文详解Python中如何使用time模块进行时间戳与日期格式的相互转换。涵盖获取当前10位秒级与13位毫秒级时间戳的方法、将指定时间戳转为“年-月-日 时:分:秒”字符串的具体代码实现,以及计算两个时间点差值的实用函数,附带完整示例便于直接调用。

核心转换逻辑与对照表

Python内置的time模块默认以秒为单位返回浮点数时间戳(如1655179674.911647)。在实际开发中,常需区分10位秒级时间戳与13位毫秒级时间戳。两者可通过除以1000或乘以1000相互换算,再结合time.localtime()与time.strftime()即可实现与标准日期字符串的互转。

Python函数功能示例
time.time()获取当前时间1655179674.911647
int(time.time())获取精确到秒时间戳,10位1655179674
int(round(time.time() * 1000))获取精确毫秒时间戳,13位1655179674912
time.localtime(k1)将10位时间戳k1转为结构化日期对象time.struct_time(tm_year=2022, tm_mon=6, ...)
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(k1))将10位时间戳转为易读格式2019-09-02 16:19:35
time.localtime(k1/1000)将13位时间戳k1转为结构化日期对象time.struct_time(tm_year=2022, tm_mon=6, ...)
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(k1/1000))将13位时间戳转为易读格式2019-09-02 16:19:35

实操步骤

第1步:获取当前系统时间戳

通过封装函数可直接获取10位或13位时间戳,方便后续业务调用。直接使用time.time()可获得高精度浮点数,按需取整即可。

import time

def get_second():
    """获取精确到秒时间戳(10位)"""
    return int(time.time())

def get_millisecond():
    """获取精确到毫秒时间戳(13位)"""
    return int(round(time.time() * 1000))

print(get_second())   # 例如:1655179674
print(get_millisecond()) # 例如:1655179674912

第2步:将时间戳转为标准日期格式

使用time.localtime()将时间戳解析为本地时区对象,再通过strftime()格式化输出。编写自适应函数可同时兼容10位秒级与13位毫秒级输入。

def ts_to_datetime(time_num):
    """将10位或13位时间戳转为【年-月-日 时:分:秒】格式"""
    # 自动识别位数并统一转为秒级浮点时间戳
    stamp = float(time_num) / 1000 if len(str(time_num)) == 13 else float(time_num)
    time_array = time.localtime(stamp)
    return time.strftime("%Y-%m-%d %H:%M:%S", time_array)

# 测试13位毫秒时间戳
print(ts_to_datetime(1654942788469)) # 输出:2022-06-11 18:19:48
# 测试10位秒时间戳
print(ts_to_datetime(1654942788))   # 输出:2022-06-11 18:19:48

第3步:计算两点间的时间差

在排查日志或统计耗时场景下,常需对比两个时间点。以下函数接收13位时间戳并返回相差的整数秒数。

def calc_delta_seconds(t1, t2):
    """计算两个13位时间戳相差的秒数"""
    return int((t2 - t1) / 1000)

k1 = 1567412375458
k2 = 1567412395853
print(calc_delta_seconds(k1, k2)) # 输出:20

关键参数与注意事项

  • time.time():返回从1970年1月1日0点起经历的秒数(浮点型),精度受系统与时钟源限制。
  • time.localtime():执行本地时区转换,若需UTC时间应改用time.gmtime()。
  • 格式化占位符:%Y代表四位年份,%m为月份,%d为日期,%H/%M/%S分别对应时、分、秒。

总结

以上就是Python时间戳与日期格式之间相互转化的详细内容,更多关于Python时间处理技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表