Incorrect Inputformat for datetime function

5 Ansichten (letzte 30 Tage)
Steve
Steve am 9 Nov. 2022
Verschoben: Rik am 10 Nov. 2022
Hi
I have the following code:0
DateStrings = {'2022-11-08T17:20:00Z'};
t = datetime(DateStrings,'InputFormat','yyyy-MM-dd''T''HH:mm:ss','TimeZone','UTC');
That gives me the following error
Unable to convert '2022-11-08T17:20:00Z' to datetime using the format 'yyyy-MM-dd'T'HH:mm:ss'.
Any idea why?
  4 Kommentare
Steve
Steve am 9 Nov. 2022
Verschoben: Rik am 10 Nov. 2022
If i remove the Z, the code runs fine
Walter Roberson
Walter Roberson am 9 Nov. 2022
Verschoben: Rik am 10 Nov. 2022
the ''T'' inside the InputFormat is the syntax for datetime() to indicate that there is a literal T in the string -- that datetime() should not try to interpret the T as a format code and should match it literally instead.
Actual problem: the user did not put in a format code to match the Z

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Steven Lord
Steven Lord am 9 Nov. 2022
If I look at the documentation for the Format property on the datetime documentation page, two of the "Examples of Common Formats" look similar to your date and time data.
'MMMM d, yyyy HH:mm:ss Z' April 9, 2014 21:41:06 -0400
'yyyy-MM-dd''T''HH:mmXXX' 2014-04-09T21:41-04:00
So let's combine them and see what happens. I added the Z from the first of those examples to the end of the format you'd specified in your original code and it seems to have worked.
DateStrings = {'2022-11-08T17:20:00Z'};
t = datetime(DateStrings,'InputFormat','yyyy-MM-dd''T''HH:mm:ssZ','TimeZone','UTC')
t = datetime
08-Nov-2022 17:20:00

Kategorien

Mehr zu Numeric Types finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by