Filter löschen
Filter löschen

Datevec problem - not able to convert string to numeric array

1 Ansicht (letzte 30 Tage)
Hi I have problem with datevec. I have vector like this. I am trying to parse data for obtaining second. But it always gives an error for me. I have my time vector in String Format in 2017a.
"2017-10-16T14:39:00.221Z"
"2017-10-16T14:39:02.221Z"
"2017-10-16T14:39:03.221Z"
"2017-10-16T14:39:04.221Z"
"2017-10-16T14:39:06.221Z"
"2017-10-16T14:39:08.221Z"
"2017-10-16T14:39:09.221Z"
"2017-10-16T14:39:10.221Z"
"2017-10-16T14:39:11.221Z"
The code that I write is
Time= strrep(Time, 'Z', ''); %find .XXXXZ replace to''
Time= strrep(Time, 'T', ' '); %find T replace to' '
formatIn = 'yyyy-mm-dd HH:MM:SS'
datevec(Time,formatIn)
The answer of matlab is
formatIn =
'yyyy-mm-dd HH:MM:SS'
Error using datevec (line 103) The input to DATEVEC was not an array of character vectors. What Can I do???

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 27 Okt. 2017
Bearbeitet: Andrei Bobrov am 27 Okt. 2017
A = {'2017-10-16T14:39:00.221Z'
'2017-10-16T14:39:02.221Z'
'2017-10-16T14:39:03.221Z'
'2017-10-16T14:39:04.221Z'
'2017-10-16T14:39:06.221Z'
'2017-10-16T14:39:08.221Z'
'2017-10-16T14:39:09.221Z'
'2017-10-16T14:39:10.221Z'
'2017-10-16T14:39:11.221Z'};
Time = strung(A);
dt = datetime(regexprep(A,{'T','Z'},{' ',''}),'I','uuuu-MM-dd HH:mm:ss.SSS');
out = datevec(dt);
  2 Kommentare
Stephen23
Stephen23 am 27 Okt. 2017
Bearbeitet: Stephen23 am 27 Okt. 2017
datetime accepts literals, so regexprep is not required. Perhaps something like this (untested):
'uuuu-MM-dd''T''HH:mm:ss.SSS''Z'''

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Orkun OZENER
Orkun OZENER am 27 Okt. 2017
Thank you for your answer It works. But what is I is doing at there..I did not find the meaning of it..Is it a format?
dt = datetime(regexprep(A,{'T','Z'},{' ',''}),'I','uuuu-MM-dd HH:mm:ss.SSS');
  1 Kommentar
Stephen23
Stephen23 am 27 Okt. 2017
"I did not find the meaning of it..Is it a format?"
Did you read the datetime help? It explains what that is.

Melden Sie sich an, um zu kommentieren.


Peter Perkins
Peter Perkins am 16 Nov. 2017
Stephen's mod of Andrei's answer looks right, but I would add that there is likely no need to call datevec. In other words, you probably don't want to convert text to a numeric array, you want to convert it to datetimes.

Kategorien

Mehr zu Dates and Time finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by