Why doesn't Matlab recognize my data format?
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello everyone,
thanks for reading. My point is that I have a time series from which I want to remove all the 29 of february. My time series is 10 years long.
Now, if I ask Matlab what's the format of my datetime, it replies me with:
ans =
'dd/MM/uuuu'
and, in fact it is correct. But when I ask Matlab to find in my matrix the position of 29 of february I get this error:
Unable to convert the text '29/02/2018' to a datetime value because its
format was not recognized.
Does someone know why?
I specify that I also tried to do table2timetable before running the find function, but it doesn't work.
Thank you!
댓글 수: 0
답변 (2개)
Cris LaPierre
2022년 6월 22일
편집: Cris LaPierre
2022년 6월 22일
The error is because 2018 was not a leap year. 2016 and 2020 were.
d1 = '29/02/2016';
datetime(d1)
% The error you see
d2 = '29/02/2018';
datetime(d2)
댓글 수: 2
Jan
2022년 6월 22일
You have answered this question 30 minutes before?! I did not see your answer before I typed my onw and even not after I sent it. Is it possible that I see the contents with a delay of 30 minutes, when I access the US server of mathworks.com from Europe?
Cris LaPierre
2022년 6월 22일
Jan
2022년 6월 22일
편집: Jan
2022년 6월 22일
a = datetime('28/02/2018', 'InputFormat', 'dd/MM/uuuu')
b = datetime('29/02/2018', 'InputFormat', 'dd/MM/uuuu')
% FAILS:
% Unable to convert the text '29/02/2018' to a datetime value because its
% format was not recognized.
There was no Februrary 29th in 2018.
a + days(1) % 01-Mar-2018
A workaround might be the old datenum format:
b = datetime(datevec('29/02/2018', 'dd/mm/yyyy'))
Ugly, but smarter.
참고 항목
카테고리
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!