Matlab对日期变量和时间变量的管理

Matlab2012a内置了三个函数

  • datanum
  • datevec
  • datestr

靠这三个函数,可以基本实现日期变量和时间变量的管理。下面直接来看。

(1)datanum

这个函数用来将字符串,日期矢量转为通用日(数值型)。所谓的通用日就是指可以进行加减运算的日期。

dn = datenum('2023-4-26')

运行这个命令,可以得到dn=739002。这个数就唯一的代表了2023年4月26日。当然,这个式子也可以带上时间,比如:

dn = datenum('2023-4-26 00:00:00')

运行后,还是得到dn=739002。如果给个具体时间:

dn = datenum('2023-4-26 10:30:00')

那么就得到dn=739002.4375。后面的小数就代表了10点半对应的日期部分了,是不到半天。这里是24小时制的。如果给12:00:00,那么小数就变为0.5。

dn = datenum('2023-4-26 12 00 00','yyyy-mm-dd HH MM SS')

datenum函数之前的输入日期的形式是很多样的,除了给字符串,还可以直接给日期数字。也可以指定特定格式的日期字符串。比如:

dn = datenum(2023,4,1)
dn = datenum(2023,4,1,0,0,0)

则都会输出dn=738977。利用这个可以计算两个日期相差的天数,比如:

dn = datenum(2023,3,1)-datenum(2023,2,1)
dn = datenum(2023,4,1)-datenum(2023,3,1)

答案分别是28和31,如果带上时间,则可以更精确:

dn = datenum(2023,3,1,12,0,0)-datenum(2023,2,1,6,0,0)

答案是28.25,因为还多了1/4天。因此,datenum函数可用来做日期的加减计算,以及通用日的存储。

(2)datevec

这个函数用来得到日期矢量,就是年、月、日、时、分、秒,输入可以是刚才得到的通用日(数值型)。

dv = datevec(dn)

答案是: 0     1    28     6     0     0。因为刚才是相减了,所以这里年份变为0了。这个函数可以用来提取年、月、日、时、分、秒。

(3)datestr

这个函数用来生成日期字符串,比如:

ds = datestr(dn)

答案是:28-Jan-0000 06:00:00。这个日期字符串的格式也是可以自定义的:

注意:在转换时,还是发现了些小错误,使用时还是要引起注意。比如:用一次报错,再用又不报错了,不知道为什么。将HH:MM:SS用HH MM SS代替时,时间不对,不知道为什么,用的时候还是要多看。

这个函数在后续版本已经不建议使用了,后面出来个新的函数datetime,但2012a并没有。

Matlab对日期变量和时间变量的管理_第1张图片

 

你可能感兴趣的:(Matlab,matlab)