You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将date和time两列合并转换为timestamp?

合并Date和Time列生成Timestamp的实现思路与方法

嘿,这个需求其实挺常见的,我来给你拆解下思路和具体实现~你的方向是对的,但不用刻意拆分日期再单独加时间,更高效的方式是先拼接出带时区的完整datetime字符串,再将其转换为timestamp——毕竟你的time列已经包含了时区偏移(比如-05:00),这一点很关键,直接利用它能避免时区错误。

具体步骤拆解

  • 第一步:清理/提取有效日期部分
    你的date列是2012-10-16 00:00:00,核心信息是前面的2012-10-16,后面的午夜时间可以直接忽略,提取纯日期部分即可。
  • 第二步:拼接完整的带时区Datetime字符串
    把提取到的日期和time列的内容用空格拼接,比如得到2012-10-16 09:38:08-05:00,这是标准的带时区datetime格式,能被大多数编程语言的解析工具识别。
  • 第三步:转换为Timestamp
    用语言自带的datetime解析工具,把拼接好的字符串转成datetime对象,再进一步转换成timestamp(也就是从1970-01-01 UTC开始计算的秒数/毫秒数)。

举个Python的实现例子

如果是用pandas处理批量数据(假设你的数据是DataFrame格式):

import pandas as pd

# 模拟你的数据集
df = pd.DataFrame({
    'date': ['2012-10-16 00:00:00'],
    'time': ['09:38:08-05:00']
})

# 提取date列的纯日期部分
df['date_clean'] = df['date'].str.split(' ').str[0]

# 拼接成完整的带时区datetime字符串
df['datetime_full'] = df['date_clean'] + ' ' + df['time']

# 转换为秒级timestamp(要毫秒级的话可以乘以1000)
df['timestamp'] = pd.to_datetime(df['datetime_full']).astype('int64') // 10**9

print(df['timestamp'])
# 输出:1350371888

如果是单条数据处理,不用pandas的话:

from datetime import datetime

date_str = '2012-10-16 00:00:00'
time_str = '09:38:08-05:00'

# 提取日期部分
date_part = date_str.split(' ')[0]
# 拼接完整datetime字符串
full_datetime_str = f"{date_part} {time_str}"
# 解析为datetime对象并转换为timestamp
dt_obj = datetime.fromisoformat(full_datetime_str)
timestamp = dt_obj.timestamp()

print(timestamp)
# 输出:1350371888.0

关键注意点

  • 一定要保留time列的时区偏移,不然解析出来的datetime会默认使用本地时区,导致timestamp计算出现偏差。
  • 如果你的date列本身就是纯日期(不带后面的00:00:00),那直接和time列拼接即可,省去拆分步骤。

内容的提问来源于stack exchange,提问作者Keshvi Srivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:17:54