2015-12-06 23 views
1

在NYC的服務器上運行的Python腳本從websocket API接收實時數據流,其中只給出時間,例如:8:21:56。提供的時間位於時區Asia/Chongqing,即UTC +08:00。本地服務器位於America/New_York時區UTC -05:00在Python中爲某個時間分配一個日期

這意味着兩個時區中的日期每天都會有所不同,這取決於夏令時12-13小時。

問題:知道,我的服務器是在不同的時區,我怎麼能找到時間轉換成合適的日期時間所需的日期?例如:如果服務器上的本地日期爲2015-12-05,請在UTC時區將8:21:56轉換爲2015-12-06 7:36:56.000Z

+0

可能的重複[如何在Python中將本地時間轉換爲UTC?](http://stackoverflow.com/questions/79797/how-do-i-convert-local-time-to-utc-in- python) –

+0

@KevinGuan在鏈接的SO問題中,給出了日期。對於這個問題,來自websocket流的日期可能與本地服務器中的日期不同,所以它不那麼直接 – Nyxynyx

+0

我認爲這並不重要,因爲該問題的接受答案可讓您*手動設置時區*。所以你可以設置你需要隱藏的時區。 –

回答

0

America/New_York像許多其他時區可能在不同日期有不同 UTC偏移。

要獲得日期在一個時區(Asia/Chongqing),對應於該時區(Asia/Chongqing)給定時間'8:21:56')假設你知道日期另一個時區(America/New_York),你應該創建一個類似於pytz's .localize() method的算法,其中困難的部分是將當地時間轉換爲UTC,但這並不總是可行的 - 其餘都很簡單(如果您知道UTC日期/時間和區域ID,例如Asia/Chongqing那麼它很容易(utc_dt.astimezone(tz).date())以Asia/Chongqing得到日期。

如果您只需要在給定日期範圍內支持固定數量的時區,則可以簡化算法。

相關問題