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 ...

 采纳的回答

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 个评论

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

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Dates and Time 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by