本文目录导读:

在Python中,将时间戳转换为日期有多种方法,下面介绍几种常用的方式。
使用 datetime 模块(推荐)
将时间戳转换为datetime对象,再格式化为日期字符串
import datetime
# 示例时间戳(秒)
timestamp = 1700000000 # 2023-11-14 22:13:20
# 转换为datetime对象
dt = datetime.datetime.fromtimestamp(timestamp)
# 格式化为日期字符串
date_str = dt.strftime('%Y-%m-%d %H:%M:%S')
print(date_str) # 输出: 2023-11-14 22:13:20
# 只显示日期
date_str_only = dt.strftime('%Y-%m-%d')
print(date_str_only) # 输出: 2023-11-14
处理毫秒级时间戳
import datetime
# 毫秒级时间戳(13位数字)
timestamp_ms = 1700000000000
# 先转换为秒
timestamp_sec = timestamp_ms / 1000
# 再转换为datetime
dt = datetime.datetime.fromtimestamp(timestamp_sec)
print(dt.strftime('%Y-%m-%d %H:%M:%S'))
# 输出: 2023-11-14 22:13:20
使用 time 模块
import time
# 时间戳
timestamp = 1700000000
# 转换为时间元组
time_tuple = time.localtime(timestamp)
# 格式化为日期字符串
date_str = time.strftime('%Y-%m-%d %H:%M:%S', time_tuple)
print(date_str) # 输出: 2023-11-14 22:13:20
使用 pandas(适合处理批量数据)
import pandas as pd # 单个时间戳 timestamp = 1700000000 date = pd.to_datetime(timestamp, unit='s') print(date) # 输出: 2023-11-15 06:13:20 # 批量处理时间戳列表 timestamps = [1700000000, 1700003600, 1700007200] dates = pd.to_datetime(timestamps, unit='s') print(dates) # 输出: DatetimeIndex(['2023-11-15 06:13:20', '2023-11-15 07:13:20', '2023-11-15 08:13:20'], dtype='datetime64[ns]', freq=None)
常用格式化符号
| 符号 | 含义 | 示例 |
|---|---|---|
%Y |
四位年份 | 2023 |
%m |
两位月份 | 11 |
%d |
两位日期 | 14 |
%H |
24小时制小时 | 22 |
%M |
分钟 | 13 |
%S |
秒 | 20 |
%Y-%m-%d |
日期格式 | 2023-11-14 |
%H:%M:%S |
时间格式 | 22:13:20 |
完整示例:获取当前时间戳并转换
import datetime
import time
# 获取当前时间戳
current_timestamp = time.time()
print(f"当前时间戳: {current_timestamp}")
# 转换为可读日期
dt = datetime.datetime.fromtimestamp(current_timestamp)
print(f"当前日期时间: {dt.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"当前日期: {dt.strftime('%Y-%m-%d')}")
print(f"当前时间: {dt.strftime('%H:%M:%S')}")
推荐使用 datetime 模块,因为它提供了更灵活的对象操作和格式化功能,且不需要额外安装第三方库。