Clear Filters
Clear Filters

day and month inverted in the time scaling

4 views (last 30 days)
time x array : 04/05/2023 00:00:22.384 04/05/2023 00:00:59.361 04/05/2023 00:02:33.408
When using stairs function the legend in x is displayed Apr 05, 2023 where it should be May 04, 2023.
How can I set the time display?

Accepted Answer

Dyuman Joshi
Dyuman Joshi on 26 Sep 2023
Extract the day and month from the datetime values and swap them.
%Example
in = [datetime(2023,4,5,00,00,22.384) datetime(2023,4,5,00,00,59.361) datetime(2023,4,5,00,02,33.408)]
in = 1×3 datetime array
05-Apr-2023 00:00:22 05-Apr-2023 00:00:59 05-Apr-2023 00:02:33
%Get year month and day
[y,m,d] = ymd(in)
y = 1×3
2023 2023 2023
m = 1×3
4 4 4
d = 1×3
5 5 5
%Get hour minute and second
[H,M,S] = hms(in);
out = datetime(y,d,m,H,M,S)
out = 1×3 datetime array
04-May-2023 00:00:22 04-May-2023 00:00:59 04-May-2023 00:02:33
  3 Comments
Sébastien Ruiz
Sébastien Ruiz on 29 Sep 2023
This solution worked and thus I applied it. Thanks for this tip.

Sign in to comment.

More Answers (1)

Les Beckham
Les Beckham on 26 Sep 2023
Edited: Les Beckham on 26 Sep 2023
If you created your "time x array" by reading strings from a text file, for example, you need to specify the 'InputFormat' argument when you read the strings using the datetime function (see documentation here).
date_strings = ["04/05/2023 00:00:22.384", "04/05/2023 00:00:59.361", "04/05/2023 00:02:33.408"];
time_x_array = datetime(date_strings, 'InputFormat', 'dd/MM/yyyy hh:mm:ss.SSS')
time_x_array = 1×3 datetime array
04-May-2023 00:00:22 04-May-2023 00:00:59 04-May-2023 00:02:33
  2 Comments
Steven Lord
Steven Lord on 26 Sep 2023
Note that if you don't include the InputFormat, MATLAB will warn you that your text data is ambiguous. It can't tell whether the month or the date is first. It will even suggest the alternate format that also matches the text representation.
date_strings = ["04/05/2023 00:00:22.384", "04/05/2023 00:00:59.361", "04/05/2023 00:02:33.408"];
time_x_array = datetime(date_strings)%, 'InputFormat', 'dd/MM/yyyy hh:mm:ss.SSS')
Warning: Successfully converted the text to datetime using the format 'MM/dd/uuuu HH:mm:ss.SSS', but the format is ambiguous and could also be 'dd/MM/uuuu HH:mm:ss.SSS'. To create datetimes from text with a specific format call:

datetime(textinput,'InputFormat',infmt)
time_x_array = 1×3 datetime array
05-Apr-2023 00:00:22 05-Apr-2023 00:00:59 05-Apr-2023 00:02:33
While MATLAB Answers runs the most recent release of MATLAB, I confirmed that this warning appears in release R2021b as well.

Sign in to comment.

Categories

Find more on Dates and Time in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!