Python中的时间戳转换方法全解析


Python中的时间戳转换可以通过datetime模块或第三方库如arrow实现,核心方法包括时间戳转日期时间字符串、日期时间转时间戳等操作。

Python中的时间戳怎么转换?

在Python开发中,时间戳(通常为10位或13位的秒/毫秒级数字)与可读的日期时间格式之间的转换是一个高频需求,本文将直接聚焦核心方法,避免冗长铺垫,详细讲解如何实现这两种数据的互相转换。

时间戳转日期时间(Timestamp → Datetime)

使用标准库datetime中的datetime.fromtimestamp()方法,可以将时间戳转换为datetime对象,再通过strftime格式化为字符串:

from datetime import datetime
timestamp = 1672531199  # 示例时间戳(秒级)
dt_object = datetime.fromtimestamp(timestamp)  # 转为datetime对象
formatted_time = dt_object.strftime("%Y-%m-%d %H:%M:%S")  # 格式化为字符串
print(formatted_time)  # 输出:2023-01-01 23:59:59

若时间戳为毫秒级(13位),需先除以1000:

millis_timestamp = 1672531199123
dt_object = datetime.fromtimestamp(millis_timestamp / 1000)

日期时间转时间戳(Datetime → Timestamp)

将日期时间字符串解析为datetime对象后,通过timestamp()方法获取时间戳:

date_str = "2023-01-01 23:59:59"
dt_object = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")  # 字符串转datetime
timestamp = int(dt_object.timestamp())  # 转为秒级时间戳
print(timestamp)  # 输出:1672531199

使用第三方库arrow简化操作

若项目允许引入第三方库,arrow提供更简洁的API:

import arrow
# 时间戳转日期时间
timestamp = 1672531199
date_str = arrow.get(timestamp).format("YYYY-MM-DD HH:mm:ss")  # 输出:2023-01-01 23:59:59
# 日期时间转时间戳
dt = arrow.get("2023-01-01 23:59:59", "YYYY-MM-DD HH:mm:ss")
timestamp = dt.timestamp()  # 转为秒级时间戳

注意事项

  • 时区问题:上述方法默认使用本地时区,若需处理UTC时间,可使用datetime.utcfromtimestamp()arrow.utcfromtimestamp()
  • 异常处理:解析非法日期字符串时需捕获ValueError

Python中时间戳与日期时间的转换,核心依赖datetime模块或第三方库arrow,掌握fromtimestamp()strftime()strptime()timestamp()等关键方法,即可灵活应对开发中的时间处理需求。

未经允许不得转载! 作者:python1991知识网,转载或复制请以超链接形式并注明出处Python1991知识网

原文地址:https://www.python1991.cn/5312.html发布于:2026-04-11