Adapting the datetime function
    9 次查看(过去 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 中查找有关 Dates and Time 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!