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

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

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

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

Thank you!
Is it still correct even though the dates come out as the 3rd of each month instead of the 1st?
Thank you, it also helped me
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!