如何将相对日期转换为绝对日期?

jms*_*980 3 python datetime netcdf

我通过Python查看netcdf文件,netcdf文件上的日期是138276,这是自2000-01-01 00:00:00以来的小时数.这个日期对应10月7日.如何将2000-01-01 00:00:00以来的138276小时的转换日期改为2015-10-07 00:00:00?

Pad*_*ham 6

由于开始日期是常量,因此请创建一个datetime对象,并使用datetime.timedelta添加您想要的任何小时:

from datetime import datetime, timedelta

start = datetime(2000,1,1,0,0,0)

new = start + timedelta(hours=138276)

print(new)
2015-10-10 00:00:00
Run Code Online (Sandbox Code Playgroud)

答案2105-10-10也不是2015-10-07


jha*_*man 5

如果您使用的是 netCDF4 软件包,则应该使用该num2date函数。

In [1]: from netCDF4 import num2date

In [2]: date = num2date(138276, 'hours since 2000-01-01 00:00:00', calendar='standard')

In [3]: date
Out[3]: datetime.datetime(2015, 10, 10, 12, 0)
Run Code Online (Sandbox Code Playgroud)

最有可能的是,您的 netCDF 时间变量也包含单位和日历,因此您可能不需要对它们进行硬编码。事实上,num2date 函数将采用日期列表或数组。