How to account for the day suffix when using datetime to recognise dates in matlab?
조회 수: 6 (최근 30일)
이전 댓글 표시
I have a cell array T containing a column of dates from several events, formatted as follows:
17×1 cell array
{'Mon 14th Oct 2019 8:23:48 am' }
{'Thu 10th Oct 2019 8:00:26 am' }
...
{'Tue 3rd Sep 2019 9:03:53 am' }
{'Thu 22nd Aug 2019 6:00:29 am' }
I would like to use datetime to recognize the dates in each cell, however the date contains the suffix for the day of the month ("14th", "10th", etc.), and I couldn't find an option in the input format to account for day suffixes.
If I (manually) remove the suffixes from the days, the following works fine:
datetime(T{1,1},'InputFormat','eeee dd MMMM yyyy hh:mm:ss a')
ans =
datetime
14-Oct-2019 08:23:48
Is there a way to account for the day suffixes (or to automatically remove them before using datetime)?
Thanks
Pedro Viana
댓글 수: 0
채택된 답변
Peter Perkins
2019년 11월 4일
Pedro, you could put a literal th in the format,
'eeee dd ''th''MMMM yyyy hh:mm:ss a'
and read most of them, and go back and read all the places where you got a NaT, using a literal nd in the format, then again with a literal st. But honestly, the simplest thing is to use replace or strrep to pre-process the text.
Just out of curiosity, where did these timestamps come from?
추가 답변 (1개)
Jyotsna Talluri
2019년 11월 5일
If dates are in a particular format given by you,suffixes {"th","nd","st","rd"} can be removed by
erase(T,["th","nd","st","rd"]);
There can be other ways to do this also
댓글 수: 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!