Converting netCDF time (hours since 1-1-1 00:00:00.0) to actual date

62 views (last 30 days)
Does anyone out there know how to do the conversion I have noted above? datestr() and datenum() are not helping much. For example:
a = time(1,1);
a = 17298624;
b = datestr(a);
b = 08 - Jan - 7362
When the data is a monthly mean from Jun 1974 with a time step of per month. The files are from www.esrl.noaa.gov.
Thanks!
  1 Comment
yaxin sun
yaxin sun on 4 May 2020
This friend,I have some similar problems with yours ,I also want to know that how to deal with this problem about you .

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 19 Jun 2012
Divide "a" by 24 as it is hours but datestr() needs days. And then add 367 to the result in order to compensate for the time base of 1-1-1 instead of datestr()'s time base of 0-0-0 . (datestr thinks year 0 was a leap year.)
  4 Comments
Walter Roberson
Walter Roberson on 4 May 2020
In modern times I would say,
datetime(1,1,1) + hours(NumberFromNetCDFFile)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!