convert narr model data time to datevec or datestr

I have a set of model data that has time attributes:
Attributes:
units = 'hours since 1800-1-1 00:00:0.0'
long_name = 'Time'
axis = 'T'
standard_name = 'time'
coordinate_defines = 'start'
delta_t = '0000-00-01 00:00:00'
actual_range = [1.74e+06 1.75e+06]
avg_period = '0000-00-01 00:00:00'
When I pull a sample time such as time(1:5) I get:
1744392
1744416
1744440
1744464
1744488
When trying to convert to date string using datestr(time(1)) I get: 25-Dec-4775. I try putting in a pivot year of 1800 but still get the same result. What am I doing wrong? The result should be Jan 1st 1999.

2 Comments

How are you calculating 'time'?
I am not calculating time. The time variable was part of the netcdf file with the attributes shown. A copy of the data (68mb) can be downloaded from:

Sign in to comment.

 Accepted Answer

>> dn1800=datenum(1800,1,1) % baseline point in Matlab datenum
dn1800 =
657438
>> datestr(dn1800+1744392/24) % add that many hours in days...
ans =
01-Jan-1999
The better way...
>> datestr(addtodate(dn1800,1744392,'hour'))
ans =
01-Jan-1999
>>

2 Comments

Thanks for the assist. Was becoming quite bothersome.
how would I go about entering a regular date 1999,1,1 and get the datenum 1744392? I tried reversing your process but that doesn't work

Sign in to comment.

More Answers (1)

Seems ok to me...
>> (datenum(1999,1,1)-dn1800)*24
ans =
1744392
Convert the days to hours from the reference point.

1 Comment

Thanks. Guess my algebra is rusty. Been a long day.

Sign in to comment.

Categories

Asked:

on 10 Jul 2014

Commented:

on 11 Jul 2014

Community Treasure Hunt

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

Start Hunting!