datenum problem in matlab
1 view (last 30 days)
Show older comments
Hi,
I have a problem in a Matlab code. I import dates from excel, then Matlab "reads" them with datestr, but after that, when Matlab convert them to numbers with datenum I have problem. The format of dates are 01/01/2012. When a day of a date is from 13 of a month till the end of the month Matlab read the day as 06/03/0021 or 06/04/0034. From 1st of a motnh till 12 of the month a have no problem because it convert the days to numbers correct..
When I run the code without importing dates from excel, I put them manually on editor I don't have any problem..
Please help me!
0 Comments
Accepted Answer
Pedro Villena
on 7 Nov 2012
Edited: Pedro Villena
on 7 Nov 2012
str = '01/01/2012'; %%string of the date, read from XLS file
First, you have to specify the date format that you have in your XLS file ( Control Panel >> Regional Configuration ).
format = 'dd/mm/yyyy';
or
format = 'mm/dd/yyyy';
Then, you could convert the date to number, and the number to date, without mistakes
str = '01/01/2012'; %%string of the date, read from XLS file
n = datenum(str,format);
s = datestr(n,format); %%s must be the equal to str
0 Comments
More Answers (2)
Titus Edelhofer
on 7 Nov 2012
Hi,
my guess is that your data is of the form dd/mm/yyyy, so first the day, then month, then year. But if you omit the date format when calling datenum, datenum guesses your data to be of American format (month first, so mm/dd/yyyy). That's why the first 12 will work (but give again guessing a wrong number!). To make the long story short, use the specific date format string as Pedro suggested.
Titus
0 Comments
See Also
Categories
Find more on Dates and Time in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!