使用XArray将时间坐标从UTC转换为本地时区

时间:2019-03-25 02:38:57

标签: python pandas numpy python-xarray

我的问题是如何将时间维度中的UTC时间坐标转换为当地时区(例如,澳大利亚东部标准时间(AEST),+ 10或+11,具体取决于夏季保存时间)

import xarray as xr
import pandas as pd
time = pd.date_range('2000-01-01', freq='H', periods=365 * 24)
ds = xr.Dataset({'foo': ('time', np.arange(365 * 24)), 'time': time})

print(ds)

输出:

<xarray.Dataset>
Dimensions:  (time: 8760)
Coordinates:
  * time     (time) datetime64[ns] 2000-01-01 ... 2000-12-30T23:00:00
Data variables:
    foo      (time) int32 0 1 2 3 4 5 6 7 ... 8753 8754 8755 8756 8757 8758 8759

是否可以将夏令时支持的UTC时间坐标转换为AEST? xarray中所有与时间相关的操作仍应在新的时间维度上起作用。

1 个答案:

答案 0 :(得分:0)

pd.date_range函数具有用于时区的参数tz,因此您想要的是这样的:

time = pd.date_range('2000-01-01', freq='H', periods=365 * 24, tz='Australia/Brisbane')

要将现有的一系列日期时间转换为正确的时区,请使用:

time = time.tz_localize(tz='Australia/Brisbane')