2016-11-09 280 views
1

我有要與曆元時間戳一起分析的傳感器陀螺儀數據。我想分析時間戳爲HH-MM-SS格式。所以,當我嘗試轉換時間戳時,結果時間不正確。以下是需要考慮的值。將EPOCH時間戳轉換爲日期

| 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 GMT。我正在使用python轉換時間庫的幫助下的時間戳。

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

添加到我的問題傳感器數據正在使用cellbots數據記錄器應用程序進行記錄。時間戳記使用Sensorevent.Timestamp進行記錄。所以,我想知道時間戳是否與這種方法有關。

+1

是如何你確定這是正確的時間?我知道這是2005年9月29日。 – Prune

+0

你知道什麼時間戳?例如,他們相對於GPS時代的微秒?或者他們是不同的單位,還是不同的時代?如果沒有這些信息(或兩個不同的值,並有相應的UTC時間),一切都只是猜測。 –

回答

1

按照你所做的事情劃分爲10 ** 6給出1973年7月29日。用10 ** 5劃分給出2005年9月29日。如果他們應該代表2014年7月20日,那麼它看起來不像這些數字是基於在1970年1月1日的時代。

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

儘管這段代碼可能會解決這個問題,包括一個解釋[真的有幫助](// meta.stackexchange.com/q/114762)來提高您的帖子的質量。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –

+0

此外,該守則於1973年7月29日頒佈。除以100000而非2005年9月29日,該守則更接近,但仍然沒有雪茄。 –

1

我認爲一個線索這一難題在於

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

因此,它看起來像你的時間戳固定點(48.16)秒自1960年1月1日。

您可能需要使用:

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

我得到的最後一個幻數,通過計算1960年1月1日和1970-01-01之間的秒數:

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

還是有一點小小的差異,那就是'2014年7月17日16:51:41'。任何人都可以解釋這三天,並完成這個答案? –