Why do "datenum" and "datestr" not give the same date after conversion?
2 次查看(过去 30 天)
显示 更早的评论
MathWorks Support Team
2018-4-19
编辑: MathWorks Support Team
2024-7-3
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
2024-6-25
编辑: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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!