杰瑞科技汇

Python时间戳如何转datetime?

在 Python 中,可以使用 datetime 模块将时间戳(timestamp)转换为 datetime 对象,以下是详细的方法和示例:

Python时间戳如何转datetime?-图1
(图片来源网络,侵删)

方法 1:使用 datetime.fromtimestamp()

适用于将 Unix 时间戳(自 1970-01-01 00:00:00 UTC 以来的秒数)转换为本地时间的 datetime 对象。

from datetime import datetime
# 时间戳(秒)
timestamp = 1625097600  # 示例时间戳
# 转换为本地时间的 datetime 对象
dt_local = datetime.fromtimestamp(timestamp)
print("本地时间:", dt_local)  # 输出: 2025-06-30 00:00:00
# 转换为 UTC 时间的 datetime 对象
dt_utc = datetime.utcfromtimestamp(timestamp)
print("UTC时间:", dt_utc)  # 输出: 2025-06-30 00:00:00

方法 2:处理毫秒级时间戳

如果时间戳是毫秒级(13位数字),需先除以 1000 再转换:

timestamp_ms = 1625097600000  # 毫秒级时间戳
dt_local = datetime.fromtimestamp(timestamp_ms / 1000)
print("毫秒时间戳转本地时间:", dt_local)  # 输出: 2025-06-30 00:00:00

方法 3:指定时区

如果需要处理时区,可以使用 pytz 或 Python 3.9+ 的 zoneinfo

使用 pytz(需安装:pip install pytz

from datetime import datetime
import pytz
timestamp = 1625097600
tz = pytz.timezone('Asia/Shanghai')  # 指定时区(如上海)
dt_local = datetime.fromtimestamp(timestamp, tz)
print("带时区的本地时间:", dt_local)  # 输出: 2025-06-30 08:00:00+08:00

使用 Python 3.9+ 的 zoneinfo(无需安装)

from datetime import datetime
from zoneinfo import ZoneInfo  # Python 3.9+
timestamp = 1625097600
tz = ZoneInfo('Asia/Shanghai')
dt_local = datetime.fromtimestamp(timestamp, tz)
print("带时区的本地时间:", dt_local)  # 输出: 2025-06-30 08:00:00+08:00

方法 4:反向转换(datetime 转时间戳)

如果需要将 datetime 对象转回时间戳:

Python时间戳如何转datetime?-图2
(图片来源网络,侵删)
dt = datetime(2025, 6, 30, 0, 0, 0)
timestamp = dt.timestamp()  # 转换为本地时间戳
print("时间戳:", timestamp)  # 输出: 1625097600.0

需求 方法
秒级时间戳转本地时间 datetime.fromtimestamp(timestamp)
毫秒级时间戳转本地时间 datetime.fromtimestamp(timestamp / 1000)
秒级时间戳转UTC时间 datetime.utcfromtimestamp(timestamp)
带时区的时间戳转换 datetime.fromtimestamp(timestamp, tz)
datetime 转时间戳 dt.timestamp()

根据你的需求选择合适的方法即可!

Python时间戳如何转datetime?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇