如何将JavaScript Date.now()时间戳通过pandas.to_datetime转换为指定格式
JavaScript毫秒时间戳转pandas日期时间格式解决方案
错误根因
你遇到的转换异常是因为pandas.to_datetime默认未按毫秒单位解析时间戳,若传入字符串格式的时间戳也会触发异常解析逻辑。Date.now()返回的是毫秒级Unix时间戳,需要显式指定解析单位才能得到正确结果。
解决步骤
- 步骤1:正确将时间戳转换为pandas datetime类型
调用pd.to_datetime时添加unit='ms'参数指定时间戳单位为毫秒,如果你的时间戳是字符串格式,需先转为整数类型:
import pandas as pd # 单个值转换示例 correct_ts = pd.to_datetime(1636460191573, unit='ms') # 输出结果:Timestamp('2021-11-09 12:16:31.573000'),符合预期 # DataFrame列转换示例 df = pd.DataFrame({ 'js_timestamp': [1636460191573, 1636546591000] }) # 若时间戳为字符串格式,先转成整数 # df['js_timestamp'] = df['js_timestamp'].astype(int) df['datetime'] = pd.to_datetime(df['js_timestamp'], unit='ms')
- 步骤2:格式化输出指定格式的日期和时间
使用dt.strftime方法按需求格式化输出:
# 提取dd/mm/yyyy格式日期 df['date_ddmmyyyy'] = df['datetime'].dt.strftime('%d/%m/%Y') # 提取hh:mm:ss格式时间 df['time_hhmmss'] = df['datetime'].dt.strftime('%H:%M:%S')
转换后示例数据第一条的date_ddmmyyyy值为09/11/2021,time_hhmmss值为12:16:31,符合要求。
内容的提问来源于stack exchange,提问作者souparno majumder
相关产品推荐
相关产品推荐

