首页 > 解决方案 > 如何确定向量是否包含 MATLAB 中的日期?

问题描述

你能确定一个向量是否包含日期吗?

我拥有的向量的日期格式为“yyyy-mm-dd”。

我已经看到了该isdatetime功能,但它似乎对我不起作用。我认为这是因为向量中充满了日期而不是日期时间。

标签: matlabdatetime

解决方案


该函数isdatetime实际上并不检查某些东西是否是有效日期,它只检查对象的类型以查看它是否是一个datetime对象。要查看您是否有一组有效的日期,您可以尝试datetime从它们创建对象并使用该isnat函数查看它们是否返回NaT(即“Not-a-Time”),指示无效/未定义的日期格式。这是一个例子:

>> C = {'2019-01-01'; ...  % Cell array of date strings, last one invalid
        '2019-02-01'; ...
        '2019-03-01'; ...
        'blah'};
>> D = datetime(C)

D = 

  4×1 datetime array

   01-Jan-2019
   01-Feb-2019
   01-Mar-2019
   NaT        

>> isnat(D)

ans =

  4×1 logical array

   0
   0
   0
   1  % Fourth entry failed conversion

推荐阅读