如何从pandas Timestamp中提取日期(优先本地时区)
解决方案
错误原因
你之前用datetime.datetime.strptime报错,是因为str(t)会输出包含时区后缀(如+00:00)的字符串,而你的格式串%Y-%m-%d %H:%M:%S没有匹配这部分内容,导致无法解析。
正确做法
要从pandas Timestamp提取本地时区对应的日期,直接用pandas自带的时区转换和日期提取功能即可,无需借助datetime模块的解析方法,步骤如下:
代码示例
from pandas import Timestamp # 示例Timestamp t = Timestamp('2022-10-10 06:00:00+0000', tz='UTC', freq='15T') # 1. 转换为本地时区 local_timestamp = t.tz_convert('local') # 2. 提取日期字符串(两种方式任选其一) # 方式一:用strftime格式化 date_str = local_timestamp.strftime('%Y-%m-%d') # 方式二:先取date对象再转字符串(默认就是YYYY-MM-DD格式) date_str = str(local_timestamp.date()) print(date_str)
补充说明
- 如果你的Timestamp本身已是本地时区,可跳过
tz_convert('local')步骤,直接提取日期。 - 也可以指定具体时区(如
'Asia/Shanghai')代替'local',精准控制时区转换。
内容的提问来源于stack exchange,提问作者james
相关产品推荐
相关产品推荐

