python如何转换时间戳

python如何转换时间戳

作者:Rhett Bai发布时间:2026-01-06阅读时长:0 分钟阅读次数:55

用户关注问题

Q
如何使用Python将时间戳转换为日期时间格式?

我有一个Unix时间戳,想用Python把它转成可读的日期和时间格式,应该怎么做?

A

使用datetime模块转换时间戳

可以利用Python中的datetime模块,通过datetime.fromtimestamp()函数将时间戳转换为日期时间对象,然后用strftime()函数格式化输出。例如:

import datetime

timestamp = 1609459200 # 2021-01-01 00:00:00
dt_object = datetime.datetime.fromtimestamp(timestamp)
formatted_time = dt_object.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_time)

Q
Python中的时间戳转换是否支持时区处理?

如何在转换时间戳时考虑到时区因素,让时间显示成具体时区的时间?

A

使用时区感知的datetime对象转换时间戳

Python可以通过datetime模块和pytz库结合使用,实现时区转换。先将时间戳转换成UTC时间,然后使用astimezone()调整到目标时区。

示例代码:
import datetime
import pytz

timestamp = 1609459200
utc_dt = datetime.datetime.fromtimestamp(timestamp, tz=pytz.UTC)
china_tz = pytz.timezone('Asia/Shanghai')
china_time = utc_dt.astimezone(china_tz)
print(china_time.strftime('%Y-%m-%d %H:%M:%S'))

Q
如何处理带有毫秒的时间戳并转换为日期?

有的时间戳是以毫秒为单位的,和普通的秒为单位的时间戳不同,该怎么转换为日期时间?

A

将毫秒级时间戳转换为秒后再转换

时间戳如果是以毫秒为单位,需先将其除以1000,转成秒为单位的时间戳,再进行转换。示例如下:

import datetime

millis_timestamp = 1609459200000
seconds_timestamp = millis_timestamp / 1000
dt_object = datetime.datetime.fromtimestamp(seconds_timestamp)
print(dt_object.strftime('%Y-%m-%d %H:%M:%S'))