day and month inverted in the time scaling

4 次查看(过去 30 天)
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?

采纳的回答

Dyuman Joshi
Dyuman Joshi 2023-9-26
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

更多回答(1 个)

Les Beckham
Les Beckham 2023-9-26
编辑:Les Beckham 2023-9-26
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 个评论
Steven Lord
Steven Lord 2023-9-26
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

标签

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by