使用datestr转换日期的意外结果

gab*_*how 1 matlab

如果我输入MATLAB,谁能告诉我为什么?

datestr('17-03-2016','dd-mmmm-yyyy')
Run Code Online (Sandbox Code Playgroud)

我明白了

06-September-0022
Run Code Online (Sandbox Code Playgroud)

Dan*_*Dan 5

来自datestr文档

DateString = datestr(___,formatOut)使用formatOut指定输出文本的格式.您可以将formatOut与上述语法中的任何输入参数一起使用.

因此,在您的示例中,'dd-mmmm-yyyy'指定输出格式,而不是输入格式.

DateString = datestr(DateStringIn)将DateStringIn转换为格式的文本,日 - 月 - 年小时:分:秒.DateStringIn中表示的所有日期和时间必须具有相同的格式.

哪里

在此输入图像描述

'dd-mm-yyyy'不是在允许的清单DateStringIn格式文件明确推荐使用datenum,以确保正确的行为.(注:我强调了错必须在句子中,这是第二个我想强调)

所以Sandar_Usama的答案

datestr(datenum('17-03-2016','dd-mmmm-yyyy'))
Run Code Online (Sandbox Code Playgroud)

是直接从文档中正式的正确方法.

最重要的是,请务必阅读文档.