
python如何转换时间戳
用户关注问题
我有一个Unix时间戳,想用Python把它转成可读的日期和时间格式,应该怎么做?
使用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)
如何在转换时间戳时考虑到时区因素,让时间显示成具体时区的时间?
使用时区感知的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'))
有的时间戳是以毫秒为单位的,和普通的秒为单位的时间戳不同,该怎么转换为日期时间?
将毫秒级时间戳转换为秒后再转换
时间戳如果是以毫秒为单位,需先将其除以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'))