日期时间
是表示时间点的最佳数据类型。日期时间
值具有灵活的显示格式和高达纳秒的精度,并且可以考虑时区、夏令时和闰秒。但是,如果使用MATLAB编写的代码®R2014a或更早版本,或者如果您与使用此版本的其他人共享代码,则可能需要使用以下三种格式之一存储的日期和时间:
日期字符串、向量和数字可以存储为值数组。在字符向量的单元格数组中存储多个日期字符串,在M
-by-6矩阵,以及矩阵中的多个序列日期编号。
您可以将这些格式中的任何一种转换为日期时间
使用日期时间
功能。如果现有的MATLAB代码需要一个序列日期号或日期向量,请使用日期
或日期向量
函数分别转换日期时间
数组设置为预期的数据格式。转换日期时间
数组到字符向量,使用烧焦
或细胞
功能。
从R2016b开始,您还可以将日期时间
数组转换为字符串数组一串
功能。
日期字符串可以是由与特定日期和/或时间相关的字段组成的字符向量。有几种方法可以用文本格式表示日期和时间。例如,以下所有内容都是表示2010年8月23日下午04:35:42的字符向量:
“2010年8月23日下午04:35:06”“8月23日星期三”“2010年8月23日16:35”“8月23日16:35:42.946”
日期字符串包括分隔字段的字符,如此处使用的连字符、空格和冒号:
d级='2010年8月23日16:35:42'
将一个或多个日期字符串转换为日期时间
使用日期时间
功能。为了获得最佳性能,请将输入日期字符串的格式指定为日期时间
.
t=日期时间(d,'输入格式','dd-MMM-yyyy时:分:秒')
t=日期时间2010年8月23日16:35:42
虽然日期字符串,D
,和日期时间
标量,T
,看起来很相似,他们不相等。查看每个变量的大小和数据类型。
谁DT
名称大小字节类属性d 1x20 40字符t 1x1 17日期时间
转换日期时间
使用烧焦
或细胞
. 例如,将当前日期和时间转换为时间戳以附加到文件名。
t=日期时间('现在','格式',“年-月-日”)
t=日期时间2017-01-03T151105
S=字符(t);文件名=['我的测试',秒]
文件名='myTest\u 2017-01-03T151105'
从R2016b开始,您可以使用一串
函数创建字符串数组。如果字符串数组包含日期字符串,则可以将字符串数组转换为日期时间
使用日期时间
功能。类似地,您可以将日期时间
数组转换为字符串数组一串
功能。
转换字符串数组。MATLAB用双引号显示字符串。为了获得最佳性能,请将输入日期字符串的格式指定为日期时间
.
结构=[“2016年10月24日11:58:17”;“2016年11月19日09:36:29”;“2016年12月12日10:09:06”})
str=3×1字符串数组“2016年10月24日11:58:17”“2016年11月19日09:36:29”“2016年12月12日10:09:06”
t=日期时间(str,'输入格式','dd-MMM-yyyy时:分:秒')
t=3×1日期时间阵列2016年10月24日11:58:17 2016年11月19日09:36:29 2016年12月12日10:09:06
转换日期时间
值转换为字符串。
t=日期时间('2016年12月25日06:12:34'); str=字符串(t)
str=“2016年12月25日06:12:34”
日期向量是一个1乘6的双精度数字向量。日期向量的元素是整数值,除了seconds元素可以是小数。时间值以24小时表示。没有AM或PM设置。
日期向量按以下顺序排列:
年月日时分秒
以下日期向量表示2012年10月24日上午10:45:07:
[2012 10 24 10 45 07]
将一个或多个日期向量转换为日期时间
使用日期时间
功能:
t=日期时间([2012 10 24 10 45 07])
t=日期时间2012年10月24日10:45:07
而不是使用日期向量
要提取日期时间值的组件,请使用函数,例如年
,月
,和白天
取而代之的是:
y=年(t)
y=2012年
或者,访问相应的属性,例如t、 年
对于年份值:
y=t.年
y=2012年
序列日期编号表示日历日期,表示自固定基准日期起经过的天数。在MATLAB中,序列号1是10000年1月1日。
序列时间可以表示从午夜开始的几天的分数;例如,下午6点等于连续的0.75天。所以字符向量'2003年10月31日下午6:00'
MATLAB中的日期是731885.75。
将一个或多个序列号转换为日期时间
使用日期时间
功能。指定要转换的日期编号的类型:
t=日期时间(731885.75,'转换自','日期编号')
t=日期时间2003年10月31日18:00:00
有些MATLAB函数接受数字数据类型,但不接受日期时间值作为输入。要将这些函数应用于日期和时间数据,请将日期时间值转换为有意义的数值。然后,调用函数。例如日志
函数接受双重的
输入,但不是日期时间
输入。假设你有一个日期时间
研究或实验过程中的一系列日期。
t=日期时间(2014,6,18)+日历月(1:4)
t=1×4日期时间阵列2014年7月18日2014年8月18日2014年9月18日2014年10月18日
减去原点值。例如,原始值可能是实验的开始日期。
dt=t-日期时间(2014,7,1)
dt=1×4时长阵列408:00:00 1152:00:00 1896:00:00 2616:00:00
日期
是一个期间
数组。转换日期
到双重的
使用年
,天
,小时
,分钟
,或秒
功能。
x=小时(dt)
x=408 1152 1896 2616
通过双重的
数组作为日志
功能。
y=对数(x)
y=6.0113 7.0493 7.5475 7.8694