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

问题描述 投票:0回答:1

我的问题是如何将时间维度中的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中的所有时间相关操作仍应适用于新的时间维度。

python pandas numpy python-xarray
1个回答
0
投票

pd.date_range函数有一个参数tz for timezone所以你想要的是这样的:

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

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

time = time.tz_localize(tz='Australia/Brisbane')
© www.soinside.com 2019 - 2024. All rights reserved.