Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python+;正在转换时区,astimezone()未返回预期值_Python - Fatal编程技术网

python+;正在转换时区,astimezone()未返回预期值

python+;正在转换时区,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按如下

我有当前的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
按如下方式传输时区:

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!