Adapting the datetime function
조회 수: 19 (최근 30일)
이전 댓글 표시
Hi everybody!
I got: a string representing a time in the format of 'dd.MM.yyyy HH:MM:SS.SSS' (actually not only one string, but a whole list)
I'd like to: transform my string into a datetime with the help of the function "datetime"
That's what I tried so far:
With the following line of code I'm always getting the error message "Error using datetime (line 639) Input data must be a numeric array, a string array, a cell array containing character vectors, or a char matrix."
date=datetime(t.r(:,1),'Inputformat','dd.MM.yyyy HH:MM:SS.SSS');
Unfortunately: I don't know how to adapt the datetime function properly! Can you please help me?
댓글 수: 0
채택된 답변
Paolo
2018년 7월 13일
편집: Paolo
2018년 7월 13일
You must use the correctly specifiers for 'InputFormat', mm for minutes and ss for seconds.
str = "13.07.2018 09:59:30.333"
datetime(str,'InputFormat','dd.MM.yyyy HH:mm:ss.SSS')
댓글 수: 2
Paolo
2018년 7월 13일
Apologies, I missed that the milliseconds are preceded by a full stop and not a colon.
Try:
datetime(str,'InputFormat','dd.MM.yyyy HH:mm:ss.SSS')
추가 답변 (1개)
Steven Lord
2018년 7월 13일
편집: Steven Lord
2018년 7월 13일
Define a variable and show us the class and size of that variable. You can show both using the whos function.
z = t.r(:,1);
whos z
The error message states:
"Error using datetime (line 639) Input data must be a numeric array, a string array, a cell array containing character vectors, or a char matrix."
To satisfy the requirement to be valid input data to the datetime function, z must be one of a numeric array (check with isnumeric), a string array (check with isstring), a cell array containing character vectors (check with iscell and iscellstr), or a char matrix (check with ischar and ismatrix).
From your description my guess is that you have a cell array containing a string array.
>> D = datetime({"13.07.2018 09:59:30.333"})
Error using datetime (line 639)
Input data must be a numeric array, a string array, a cell array containing
character vectors, or a char matrix.
If that's the case, you may want to switch to using just a plain string array.
>> D = datetime(["13.07.2018 09:59:30.333"; "10.08.2018 13:15:47.123"], ...
'InputFormat', 'dd.MM.yyyy HH:mm:ss.SSS')
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Time Series Objects에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!