7.2 日期和时间元素
本小节将为读者介绍如何对指定日期和时间元素的数值进行提取,另外如何通过datetime的属性来对指定的元素进行赋值。MATLAB提供了如下函数进行元素操作,请见表3-12。
表3-12日期和时间元素提取函数
函 数说 明函 数说 明
year年份minute分钟
hour小时second秒
day日quarter季度数
month月份week星期数
ymd 年月日hms 时分秒
split 将日历时间长度按单位级别分解为数值形式time 将日历时间长度转换为固定时间长度
timeofday将时间点转换为时间长度isdst 检测夏令时元素
isweekend检测是否是周末 tzoffset检测时区,返回和UTC的时差
下面我们举例来说明如何从已有的datetime数组中提取日期和时间元素。然后将会介绍如何对指定元素通过对数组属性的设置来进行修改。
【例3-45】 日期和时间数组元素的提取。
首先创建一个测试用datetime数组。
>> t = datetime('now') + calyears(0:2) +calmonths(0:2) + hours(20:20:60)
t =
04-Sep-2014 20:42:32 05-Oct-201516:42:32 06-Nov-2016 12:42:32
如果想提取数组中的“年”这一元素,那么只需要使用“.”这一符号加Year属性就可以了。
>> t_years = t.Year
t_years =
2014 2015 2016
输出的t_years是一个数值数组。
同样的,如果想提取月这一元素,可以通过以下方法:
>> t_months = t.Month
t_months =
9 10 11
在以上方法之外,用户可以通过函数来对日期和时间的各元素进行检索。例如要检索月份的话,那么就可以通过month函数来实现。
>> m = month(t)
m =
9 10 11
通过使用month函数而不是Month属性来提取月份的全名:
>> m = month(t,'name')
m =
'September' 'October' 'November'
同样的也可以使用year,quarter,week,hour,minute和second函数来分别提取时间数组t中的其他元素:
>> w = week(t)
w =
36 41 46
这里返回的是数据所对应与当年第几周。
使用ymd函数可以同时提取年、月、日三个元素:
>> [y,m,d] = ymd(t)
y =
2014 2015 2016
m =
9 10 11
d =
4 5 6
使用hms函数可以同时提取时、分、秒三个元素:
>> [h,m,s] = hms(t)
h =
20 16 12
m =
42 42 42
s =
32.9365 32.9365 32.9365
【例3-46】 日期和时间数组元素的修改。
对已有时间数组中的元素数值进行修改可以通过“.”加属性名来实现。
改变时间数组t中的年份,令其等于2014:
>> t.Year = 2014
t =
04-Sep-2014 2