MATLAB: Do “datenum” and “datestr” not give the same date after conversion

MATLAB

Why do "datenum" and "datestr" not give the same date after conversion?
>> a = datenum('20101231','YYYYMMDD');
>> b = datestr(a)
b =
'31-Jan-2010 00:12:00'

Best Answer

The issue happens because "MM" is the format for 'minute' in "datenum".
You can use the lower case "mm" to get the expected output:
>> a = datenum('20101231','YYYYmmDD');
>> b = datestr(a)
b =
'31-Dec-2010'