将EPOCH时间戳转换为日期

时间:2016-11-09 18:16:23

标签: python unix timestamp epoch

我有传感器陀螺仪数据以及纪元时间戳。我想将时间戳分析为HH-MM-SS格式。因此,在我尝试转换时间戳时,结果时间不正确。以下是需要考虑的值。

| Time            | Gyro_X       | Gyro_Y      | Gyro_Z        |
|-----------------|--------------|-------------|---------------|
| 112802627681000 | 0.09686792   | 0.14810029  | 0.005777027   |
| 112802636065000 | 0.029674599  | 0.10087131  | 2.1168962E-5  |
| 112802636868000 | 0.029674599  | 0.10087131  | 2.1168962E-5  |
| 112802645721000 | -0.019805614 | 0.028886953 | -0.007304834  |
| 112802646541000 | -0.019805614 | 0.028886953 | -0.007304834  |
| 112802655003000 | -0.030801188 | -0.0493038, | -0.0048613725 |
| 112802656170000 | -0.030801188 | -0.0493038  | -0.0048613725 | 

正确的时间必须是2014年7月20日格林威治标准时间16-20-31。我正在使用python在时间库的帮助下转换时间戳。

import time
y=time.strftime('%m/%d/%Y %H:%M:%S',  time.gmtime(112802646541000/1000000))

要添加我的问题,正在使用cellbots数据记录器应用程序记录传感器数据。使用Sensorevent.Timestamp记录时间戳。所以,我想知道时间戳是否与此方法有关。

3 个答案:

答案 0 :(得分:1)

你正在做的除以10 ** 6给出了1973年7月29日。用10 ** 5除以2005年9月29日。如果他们应该代表2014年7月20日那么它们看起来不像这些数字是基于1970年1月1日的时代。

答案 1 :(得分:1)

我认为这个难题的线索在于

$ date -u -d "@$((112802627681000 / 65536))"
Wed 17 Jul 15:51:41 UTC 2024

所以看起来你的时间戳是1960-01-01以来的定点(48.16)秒。

您可能需要使用:

datetime.datetime.fromtimestamp(s/65536 - 315619200)

我通过计算1960-01-01和1970-01-01之间的秒数得到了最后一个幻数:

$ date -u -d 1960-01-01 +%s
-315619200

答案 2 :(得分:-1)

import pytz, datetime
s = 112802646541000/1000000
print(datetime.datetime.fromtimestamp(s).strftime('%d %B %Y %H:%M:%S'))