python+;正在转换时区,astimezone()未返回预期值
我有当前的DateTime64对象(来自pandas)。当前为GMT。其字符串形式为: 时间=2017-01-02 23:00:00 然后我尝试将它从GMT转换为ESTpython+;正在转换时区,astimezone()未返回预期值,python,Python,我有当前的DateTime64对象(来自pandas)。当前为GMT。其字符串形式为: 时间=2017-01-02 23:00:00 然后我尝试将它从GMT转换为EST dt = timezone('GMT').localize(time) time = dt.astimezone(timezone('US/Eastern')) 当我运行它时,它返回(字符串形式) 2017-01-02 23:00:00+00:00 也就是说,它并没有将GMT转换为EST。知道为什么吗?您可以使用pytz按如下
dt = timezone('GMT').localize(time)
time = dt.astimezone(timezone('US/Eastern'))
当我运行它时,它返回(字符串形式)
2017-01-02 23:00:00+00:00
也就是说,它并没有将GMT转换为EST。知道为什么吗?您可以使用
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)
首先,您必须将时间读取为本地时间并将其本地化,然后使用astimezone将其设置为东部时间。希望这能有所帮助。如果您能告诉我们您从何处导入的
时区以及时间的类型,那就太好了。使用pytz.timezone
和time
作为一个简单的datetime.datetime
(由datetime64\u变量转换。astype(datetime)
)实例对我来说很好。你知道吗-我不认为这是上面的错误。我没有的部分是,我将时间添加到一个序列中,并附加到一个数据帧中。我想是数据帧追加将其转换回UST!