1

我正在尝试将 UTC 数据转换为莫桑比克当地时间。对于莫桑比克,当地时间遵循 GMT+2 或非洲/马普托。但是,当使用.tz_localize('UTC').tz_convert(X)where X 可以是= 'GMT+2'或者= 'Africa/Maputo'我得到单独的答案时。举个例子:

import pandas as pd 
import numpy as np

np.random.seed(2019)
N = 1000
rng = pd.date_range('2019-01-01', freq='10Min', periods=N)
df = pd.DataFrame(np.random.rand(N, 3), columns=['temp','depth','acceleration'], index=rng)

print(df.tz_localize('UTC').tz_convert('Etc/GMT+2'))

print(df.tz_localize('UTC').tz_convert('Africa/Maputo'))

解决我的问题的代码是:df.tz_localize('UTC').tz_convert('Africa/Maputo'). 因此,我想知道我是否误解了该tz_convert('Etc/GMT+2')方法,以及为什么两种不同的解决方案不能提供相同的答案。tz_convert('Etc/GMT-2')解决了诀窍,但不直观,至少对我来说。

提前致谢。

4

1 回答 1

0

使用 etcetera 的时区转换是反向工作的,考虑到对其文档的以下观察,也许应该完全弃用它:

这些条目主要是由于历史原因而出现的,因此 tz 文件未涵盖的区域中的人们可以“zic -l”到适合他们所在区域的时区。 这些天来,tz 文件几乎涵盖了所有有人居住的世界,因此现在几乎不需要那些不在 UTC 上的条目。

您的解决方法是正确的,最好的解释为什么可以在这里找到。也许坚持使用tz_convert('Africa/Maputo').

于 2021-09-01T14:05:34.027 回答