2017-01-23 83 views
0

我當前DateTime64對象(從大熊貓)。目前在格林威治標準時間。它的字符串形式是:蟒+轉換時區,astimezone()沒有返回預期值

時間爲2017年1月2日23:00:00

然後我試圖把它從GMT轉換爲EST。

dt = timezone('GMT').localize(time) 
time = dt.astimezone(timezone('US/Eastern')) 

當運行此,這將返回(以字符串形式)

2017年1月2日23:00:00 + 00:00

即其不轉換它從GMT到EST。任何想法爲什麼?

+0

這將是巨大的,如果你能告訴我們你來自哪裏,進口'''timezone'''和什麼類型的'''time'''是。使用'''pytz.timezone'''與'''time'''是一個天真的'''datetime.datetime'''(由'''datetime64_variable.astype(日期時間)轉換''')實例,它工作正常爲了我。 – Jann

+0

你知道嗎 - 我不認爲這是上述錯誤。我沒有的部分是,我將時間添加到一個系列中,並追加到數據框中。它的數據框追加這轉換回UST我想! – keynesiancross

回答

0

您可以使用pytz的時區轉移如下:

import pytz 
import datetime 

gmt = pytz.timezone('GMT') 
eastern = pytz.timezone('US/Eastern') 
time = "2017-01-02 23:00:00" 
date = datetime.datetime.strptime(time, '%Y-%m-%d %H:%M:%S') 
print(date) 
dategmt = gmt.localize(date) 
print(dategmt) 
dateeastern = dategmt.astimezone(eastern) 
print(dateeastern) 

首先,你必須閱讀的時間爲當地時間和localize,然後使用astimezone,使其作爲東部時間。希望這可以幫助。