我在轉換python驅動返回時間戳的event_time時遇到了一些麻煩。Cassandra python driver event_time
基本上,我需要存儲時間戳與一些關聯的數據,然後按時間範圍查詢。在開始的時候,我不知道,你可以把時間戳查詢,所以我想他們這樣轉換爲字符串:
datetime.utcfromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
現在,當我查詢從蟒蛇的數據(I轉換時間戳與上述相同,並將它們放入查詢中)我得到我想要轉換回時間戳的日期時間對象。我試圖
(row.event_time - datetime.utcfromtimestamp(0)).total_seconds()
但這似乎亂用的時區。這是否意味着返回的日期時間不是UTC?我嘗試了一些我在網上找到的其他轉換,但沒有任何效果。一旦它幾乎奏效,但當它到達夏令時開關的時候,我會得到新的一小時補償。
所以,我的問題是:在Python和Cassandra之間使用時間戳的正確方法是什麼?難道它不能像unix時間戳一樣簡單嗎?
UTC時區沒有夏令時 - utc偏移量總是*爲零。如果Cassandra返回代表utc時間的相同日期時間對象,那麼'(dt-epoch).total_seconds()'應該返回原始的'timestamp'(不分數)。但它可能將天真的日期時間對象解釋爲偏離結果的本地時間。如果您無法在任何地方強制使用UTC時區,應該有一種方法可以直接傳遞時間戳。 – jfs 2015-02-12 16:15:41