- Is '2/1/1999' the first of February (USA) or the second of January (most of the rest of the world)?
- Is '3/1/99' the same year when Narcissus of Jerusalem was born, or is there an unwritten century and millenium?
How do I reformat a set of differently formatted dates in to one consistent format?
조회 수: 6 (최근 30일)
이전 댓글 표시
I have a set of data (a cell array) where one column consist of dates, now these dates have been entered in a variety of ways, here is how it looks:
'1/1/1999'
'2/1/1999'
'3/1/99'
'Feb 2001'
'unknown'
'4-2001'
'5/2000'
What I would like to do is to convert all these to one uniform format. For the first three entries it works to do the following:
datestr(char(tableOfData(1:3,:)))
For the 'unknown' I can do strcmp(char(tableOfData(5,:)),'unknown') and replace with NaT or NaN or 0 or something.
But how do I deal with the rest of the entries?
Thank you in advance!
Emanuel
댓글 수: 2
Stephen23
2021년 8월 24일
편집: Stephen23
2021년 8월 24일
"But how do I deal with the rest of the entries?"
There is no easy answer to that, because dates are written and interpreted differently by different people:
You need to decide how to handle such conflicting cases: https://en.wikipedia.org/wiki/Date_format_by_country
Ambigous input data makes processing it much more difficult.
채택된 답변
Stephen23
2021년 8월 24일
편집: Stephen23
2021년 8월 24일
There is no tool which will correctly interpret the mutually-exclusive date formats used around the world:
The only reliable date format is ISO 8601: https://xkcd.com/1179/
You can easily convert a subset of formats that you specify:
C = {'1/1/1999';'2/1/1999';'3/1/99';'Feb 2001';'unknown';'4-2001';'5/2000'};
T = cellfun(@myfun,C)
function T = myfun(D)
T = NaT;
for f = ["dd/MM/yy","MM/yy","MM-yy","MMM yy"] % create this list to suit your data
try
T = datetime(D, 'InputFormat',f);
break
end
end
end
추가 답변 (1개)
Yongjian Feng
2021년 8월 24일
댓글 수: 2
Yongjian Feng
2021년 8월 24일
It doesn't seem like those two formats are supported. Parse the string yourself?
참고 항목
카테고리
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!