如果您执行了每个中间步骤,您会看到strcat
忽略尾随空格(据记录 http://www.mathworks.nl/help/matlab/ref/strcat.html):
strcat('26/06/1998',' ','15:00:00')
> 26/06/199815:00:00
修复方法相当简单:只需不要使用strcat
,而是使用普通矩阵串联:
strSrcDate = ['26/06/1998',' ','15:00:00']
接下来,您使用了错误的日期转换函数。datestr
是转换为字符串,而不是从字符串。好吧好吧,它可以处理字符串输入,但那就是相当有限 http://www.mathworks.nl/help/matlab/ref/datestr.html#inputarg_DateStringIn。你会想要使用datenum http://www.mathworks.nl/help/matlab/ref/datenum.html:
这给出了一个日期序列(阅读文档!),它是一个代表日期的数字(没有任何歧义)。使用该数字进行日期的内部存储,当您想要将该日期打印到屏幕或文件时,请使用以下命令将其转换为字符串datestr
:
numSrcDate = datenum(strSrcDate,'dd/mm/yyyy HH:MM:SS')
> 729932.625
datestr(numSrcDate,'dd/mm/yyyy HH:MM:SS'); % or any other format
datestr(numSrcDate,'dd/mm/yy HH:MM');
> 26/06/1998 15:00:00
> 26/06/98 15:00