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

2 次查看(过去 30 天)
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'

采纳的回答

MathWorks Support Team
编辑:MathWorks Support Team 2024-7-3
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by