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

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

本文详解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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。