Cell array to string to datetime conversion, parse error.
古いコメントを表示
Hello,
I have a cell array of many data types. The first column stores dates and times of the format: '2016/04/16 10:06:05 PM'.
I have pulled the first column out,
here = T(:,1);
so I'm trying to obtain datetimes from them using,
f = 'yyyy/MM/dd h:mm:ss a';
d1 = datetime(here(1),'InputFormat',f,'Format',f);
but I get the following error:
Error using datetime (line 616)
Unable to parse ''2016/04/16 10:06:05 PM'' as a date/time using the format 'yyyy/MM/dd h:mm:ss a'
So it looks like I have extra quotes maybe? I'm not really sure. I tried changing the format f
'"yyyy/MM/dd h:mm:ss a"',
tried converting the cell to an array of strings,
here = string(here);
and an array of chars,
cell2mat(here);
but nothing has worked at all. I'm getting very frustrated.
I even tried converting it to a string and tried using the function erase() to get rid if potential extra quotes but nothing I've tried works. I need these to be datetimes to work with them with my other functions.
Any help would be wonderful, thank you.
*EDIT* I just read that datetime can handle cell arrays but that's not working either and I'm having the following returned where here is still a cell array:
Error using datetime (line 616)
Unable to parse date/time text using the format 'yyyy/MM/dd h:mm:ss a'.
I'm completely lost.
7 件のコメント
Walter Roberson
2018 年 7 月 19 日
That error message only makes sense of T is a string array, not a cell array. If T is a cell array then here = T(:,1) would be a cell array, and here(1) would be a scalar cell array, in which case you would have received the error
Input data must be a numeric array, a string array, a cell array containing character vectors, or a char matrix.
Erin Winkler
2018 年 7 月 19 日
Erin Winkler
2018 年 7 月 19 日
編集済み: Erin Winkler
2018 年 7 月 19 日
Walter Roberson
2018 年 7 月 19 日
Ah, during my testing I accidentally used a cell array containing a string object instead of a cell array containing character vectors.
Okay, yes, if you are getting that exact error message then the quotes are part of the character vectors. Try
datetime( regexprep(here, '''', ''), 'InputFormat', f, 'Format', f)
Erin Winkler
2018 年 7 月 19 日
Erin Winkler
2018 年 7 月 19 日
Erin Winkler
2018 年 7 月 19 日
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!