Why do "datenum" and "datestr" not give the same date after conversion?

2 visualizzazioni (ultimi 30 giorni)
I am using the "datenum" function to create an object and get the date as a string using "datestr". I pass "20101231" (31-Dec-2010) as input to "datenum" but get back "31-Jan-2010" from "datestr" instead.
Following code shows how I am using the functions.
>> a = datenum('20101231','YYYYMMDD');
>> b = datestr(a)
b =
    '31-Jan-2010 00:12:00'

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 25 Giu 2024
Modificato: MathWorks Support Team il 3 Lug 2024
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'
To avoid the future confusion, we highly recommend using "datetime" with more intuitive letter identifiers, for example
>> a = datetime('2010-12-31')
a =
datetime
31-Dec-2010
>> a = datetime('2010-12-31','InputFormat','yyyy-MM-dd')
a =
datetime
31-Dec-2010

Più risposte (0)

Categorie

Scopri di più su Dates and Time in Help Center e File Exchange

Prodotti


Release

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by