MATLAB Answers

0

How to get string that uses datetime Format property?

Asked by Bruce Elliott on 28 Sep 2015
Latest activity Commented on by Bruce Elliott on 28 Sep 2015
Note: I posted this question to the newsgroup as well. I'm not sure which is the more appropriate forum.
Is there a way to get string variable that is equivalent to the output of the disp method for a datetime object, which is written to the command line interface? I'd like to print formatted strings from datetime arrays to a file, but fprintf says that it is not defined for datetime inputs.

  1 Comment

forum and newsgroup are as appropriate. Use whichever you prefer or both.

Sign in to comment.

2 Answers

Answer by Guillaume
on 28 Sep 2015
 Accepted Answer

The way to convert a datetime into a string according to the datetime Format attribute is actually very simple: Use char
d = datetime;
s1 = char(d)
d.Format = 'uuuu-MM-dd''T''HH:mm:ss';
s2 = char(d)
The documentation of datetime (accessed through doc datetime) is actually not very good as it does not tell you all the methods of the datetime object. However you can see all of them with
help datetime

  1 Comment

Thank you, Guillaume! I had thought there must be an easy way to do this, since the formatted strings are clearly available. Thanks also for the tip to check the help text for datetime - I had been relying heavily on the documentation since I'm still learning about the datetime class.

Sign in to comment.


Answer by Peter Perkins
on 28 Sep 2015

Bruce, in your C.S-S.M post, you said, "write data and labels to a file". It's worth noting that if you have everything in a table, writetable will automatically write out the datetimes to the file with no conversion necessary. It uses the format and the timezone that the datetime variable in the table is set to, so if you want both a local and a UTC timestamp in the file, you'd have to have two datetime variables in the table.

  1 Comment

Thanks, Peter. That sounds like it's worth a try, although I'm currently assembling the table line-by-line and just writing each line to the file as I go. Still, if I can figure out how to collect all the necessary data into the table and then write it all at once, that would be a lot simpler.

Sign in to comment.