datetime() does not return time data
12 views (last 30 days)
Show older comments
Emily T. Griffiths
on 26 Oct 2022
Commented: Steven Lord
on 27 Oct 2022
Hello all,
I just noticed a bug in my code that my datetime function is not converting time data from the character string.
My code is the following:
DTstart = datetime("2021-11-16 11:48:00", "InputFormat","yyyy-MM-dd HH:mm:ss");
This has worked on all versions of matlab without fail. However, I just updated to 2022b. Now when I run this, instead of getting:
DTstart =
datetime
16/11/2021 11:48:00
I get simply:
DTstart =
datetime
16/11/2021
This is causing a HUGE headache in my code. I need to look at thing by the second. It doesn't matter if I run the text as a string or a character. Everytime I try to search for an alternative, I just get redirected to the datetime function. Can someone please explain to me why this function is no longer working, or perhaps suggest an alternative?
0 Comments
Accepted Answer
Steven Lord
on 26 Oct 2022
In the Preferences, expand the MATLAB item in the tree. Select the Command Window item. What does it list for the default datetime display formats? Did you accidentally change the default?
2 Comments
Steven Lord
on 27 Oct 2022
Even if you'd changed the display format, the data was still present in the variable.
DTstart = datetime("2021-11-16 11:48:00", ...
"InputFormat","yyyy-MM-dd HH:mm:ss", ...
'Format', 'yyyy-MM-dd')
You can see this by asking for the time of day stored in DTstart.
timeofday(DTstart)
More Answers (1)
Voss
on 26 Oct 2022
Try specifying the Format (in addition to the InputFormat):
DTstart = datetime("2021-11-16 11:48:00","InputFormat","yyyy-MM-dd HH:mm:ss",'Format','dd/MM/yyyy')
DTstart = datetime("2021-11-16 11:48:00","InputFormat","yyyy-MM-dd HH:mm:ss",'Format','dd/MM/yyyy HH:mm:ss')
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!