Python时间戳与日期格式相互转换指南
本文详解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时间处理技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









