Why doesn't Matlab recognize my data format?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (2)
Cris LaPierre
le 22 Juin 2022
Modifié(e) : Cris LaPierre
le 22 Juin 2022
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 commentaires
Jan
le 22 Juin 2022
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
le 22 Juin 2022
Jan
le 22 Juin 2022
Modifié(e) : Jan
le 22 Juin 2022
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.
1 commentaire
Voir également
Catégories
En savoir plus sur Dates and Time dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!