我有一组19位的时间戳,stamp
,我不知道如何转换成日期时间格式
stamp
对应于dt
李>dt
已转换为datetime和unix时间戳李>我也读过类似的文章,这不仅仅是除以100000000的问题。而且,它不像How to convert a really long timestamp into datetime (19 digits) (9876432101234567890)那样是一个双重问题
示例:
import pandas as pd
data = {'stamp': [1264604283246383104, 1266445459956158467, 1269744490329358337, 1270363071710715905],
'dt': ['May 24 2020 13:08 EST', 'May 29 2020 15:05 EST', 'Jun 7 2020 17:34 EST', 'Jun 9 2020 10:32 EST']}
df = pd.DataFrame(data)
# move timezone to a separate column
df['tz'] = df['dt'].str[-4:]
df['dt'] = df['dt'].str.replace(' EST', '')
# convert dt to UTC datetime
df['datetime'] = pd.to_datetime(df['dt']).dt.tz_localize(tz='US/Eastern').dt.tz_convert('UTC')
# convert datetime to unix datetime
df['datetime_unix'] = df['datetime'].astype(int)
stamp dt tz datetime datetime_unix
0 1264604283246383104 May 24 2020 13:08 EST 2020-05-24 17:08:00+00:00 1590340080000000000
1 1266445459956158467 May 29 2020 15:05 EST 2020-05-29 19:05:00+00:00 1590779100000000000
2 1269744490329358337 Jun 7 2020 17:34 EST 2020-06-07 21:34:00+00:00 1591565640000000000
3 1270363071710715905 Jun 9 2020 10:32 EST 2020-06-09 14:32:00+00:00 1591713120000000000
关于这是什么以及如何通过Python转换的想法
stamp
转换为相应的dt
李>
Joseph Sible-Reinstate Monica在解释解决问题的步骤方面做得很好。但答案是缺少细节和代码,所以我想我会帮你填写
如果时间戳编号与日期/时间之间存在线性关系,则只需对每个编号进行两次采样即可建立关系。有了更多,你就有可能测试解决方案,并确信这种关系确实是线性的
如您所见,函数输出与预期结果非常接近。它精确地匹配第一个和最后一个,因为这两个是用来计算转换因子的
时间戳格式是一致的,但毫无意义。通过执行
(1270363071710715905 - 1264604283246383104)/(Jun 9 2020 10:32 EST - May 24 2020 13:08 EST)
,我们确定您的时间戳以大约4.2GHz的频率滴答作响。通过执行Jun 9 2020 10:32 EST - 1270363071710715905/4.2GHz
,我们确定您的时间戳的纪元是在2010年11月初。我不知道有任何具有这些属性的常见或众所周知的时间戳,但这些信息足以让您能够将任意时间转换为这些时间戳相关问题 更多 >
编程相关推荐