Matlab2012a内置了三个函数
靠这三个函数,可以基本实现日期变量和时间变量的管理。下面直接来看。
(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并没有。