Formatted Datetime char values stored as numbers

t1=datetime(2012,1,1,0,0,0);
t2=datetime(2012,12,31,23,30,0);
TSarray=t1:minutes(30):t2; %this makes a timestamp array for one year in 30 min increments
TSarray.Format='yyyyMMddHHmm'; %displays the TS array the way I need it e.g. '201208161230' Aug 16 12:30
TSstr=cellstr(TSarray);
I don't see how to get the TSstr cell array (char), or the datetime output in general, to be converted into a number array (double) of the number as it appears in the format, and not the datenum value. There must be a way to control this with datenum. In other words I want a number array of the formatted date e.g. '201208161230'. Reason being that I wish to combine with other number arrays into output matrix.
outputdata = [TSstr,data1,data2,....];
201208161230 data1 data2 ...
201208161300 data1 data2 ...
201208161330 data1 data2 ...

 Accepted Answer

Tsout = year(TSarray)*10^8 + month(TSarray)*10^6 + day(TSarray)*10^4 + hour(TSarray)*10^2 + minute(TSarray);
(You can skip setting the Format before this.)
Or you could str2double(TSstr)

3 Comments

Thank You! I get stuck on easy stuff apparently.....
Now I need to get fprint to actually print the whole number :( I only get 201200000000 for whole year. How to get more that %.9g? I need 12 spaces.
And the answer is..... %.12g. I failed to understand that while .5 means five, .12 means twelve

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!