datetime
是表示时间点的最佳数据类型。datetime
值具有灵活的显示格式和高达纳秒的精度,可以考虑时区、夏令时和闰秒。然而,如果您使用MATLAB编写的代码®R2014a或更早的版本,或者如果您与使用该版本的其他人共享代码,您可能需要使用以下三种格式之一的日期和时间存储:
日期字符串、向量和数字可以存储为值数组。在字符向量的单元格数组中存储多个日期字符串,在米
-by-6矩阵,以及一个矩阵中的多个连续日期号。
你可以把这些格式转换成datetime
数组的使用datetime
函数。如果您现有的MATLAB代码需要一个串行日期号或日期向量,则使用datenum
或datevec
函数,分别转换datetime
数组的预期数据格式。将一个datetime
数组的字符向量,使用字符
或cellstr
功能。
从R2016b开始,你也可以转换adatetime
的字符串数组字符串
函数。
日期字符串可以是由与特定日期和/或时间相关的字段组成的字符向量。在文本格式中有几种表示日期和时间的方法。例如,下面所有的字符向量表示2010年8月23日下午04:35:42:
'23- August -2010 04:35:06 PM' '星期三,8月23日' '08/23/10 16:35' ' 8月23 16:35:42.946'
日期字符串包括分隔字段的字符,如这里使用的连字符、空格和冒号:
d =“23 - 8月- 2010 16:35:42”
将一个或多个日期字符串转换为datetime
数组的使用datetime
函数。为获得最佳性能,请将输入日期字符串的格式指定为输入datetime
.
t = datetime (d,“InputFormat”,“dd-MMM-yyyy HH: mm: ss”)
t = datetime 23- august -2010 16:35:42
尽管日期字符串,d
,datetime
标量,t
虽然看起来相似,但它们并不相等。查看每个变量的大小和数据类型。
谁dt
Name Size Bytes Class Attributes d 1x20 40 char t 1x1 17 datetime
把一个datetime
将数组转换为字符向量字符
或cellstr
.例如,将当前日期和时间转换为要附加到文件名中的时间戳。
t = datetime (“现在”,“格式”,“yyyy-MM-dd“T”HHmmss”)
日期:2017-01-03T151105
S = char (t);文件名= [“myTest_”,年代)
文件名= ' myTest_2017-01-03T151105 '
从R2016b开始,您可以使用字符串
函数创建字符串数组。如果字符串数组包含日期字符串,则可以将字符串数组转换为datetime
数组的datetime
函数。类似地,你可以转换adatetime
的字符串数组字符串
函数。
转换字符串数组。MATLAB用双引号显示字符串。为获得最佳性能,请将输入日期字符串的格式指定为输入datetime
.
str = [“24 - 10月2016 11:58:17”;“19 - 11月- 2016 09:36:29”;“12 - 12月- 2016 10:09:06”]
str = 3×1 string array "24-Oct-2016 11:58:17" "19-Nov-2016 09:36:29" "12- december -2016 10:09:06"
t = datetime (str,“InputFormat”,“dd-MMM-yyyy HH: mm: ss”)
t = 3×1 datetime array 24-Oct-2016 11:58:17 19-Nov-2016 09:36:29 12-Dec-2016 10:09:06
把一个datetime
值转换为字符串。
t = datetime (“25 - 12月- 2016 06:12:34”);字符串str = (t)
str = "25- december -2016 06:12:34"
日期向量是由双精度数字组成的1 × 6向量。日期向量的元素都是整数值的,除了秒元素,它可以是小数。时间值用24小时表示法表示。没有AM或PM设置。
日期向量按以下顺序排列:
年月日小时分秒
下面的日期向量表示2012年10月24日上午10:45:07:
[2012 10 24 10 45 07]
将一个或多个日期向量转换为datetime
数组的使用datetime
功能:
T = datetime([2012 10 24 10 45 07])
t = datetime 24-Oct-2012 10:45:07
而不是使用datevec
要提取datetime值的组件,可以使用如下函数一年
,月
,一天
而不是:
y =年(t)
y = 2012
或者,访问相应的属性,例如t.Year
年值:
y = t.Year
y = 2012
连续日期号表示日历日期,表示从固定的基本日期以来已经过的天数。在MATLAB中,序号1是1月1日0000。
连续时间可以表示从午夜开始的天数的小数;例如,下午6点等于0.75个连续日。所以字符向量2003年- 10月31日,下午6点的
在MATLAB中是日期编号731885.75。
将一个或多个序列号转换为一个datetime
数组的使用datetime
函数。指定要转换的日期号的类型:
t = datetime (731885.75,“ConvertFrom”,“datenum”)
t = datetime 31-Oct-2003 18:00:00
一些MATLAB函数接受数值数据类型,但不接受datetime值作为输入。要将这些函数应用于日期和时间数据,请将日期时间值转换为有意义的数值。然后,调用函数。例如,日志
函数接受双
输入,但不datetime
输入。假设你有datetime
一组跨越研究或实验过程的日期。
T = datetime(2014,6,18) + calmonths(1:4)
t = 1×4 datetime array 18- 7 -2014 18- 8- 2014 18- 9 -2014 18- 10 -2014
减去原点值。例如,原始值可能是实验的开始日。
Dt = t - datetime(2014,7,1)
Dt = 1×4 duration array 408:00:00 1152:00:00 1896:00:00 2616:00:00
dt
是一个持续时间
数组中。转换dt
到一个双
以年、天、时、分或秒为单位的值数组年
,天
,小时
,分钟
,或秒
函数,分别。
x =时间(dt)
X = 408 1152 1896 2616
通过双
的输入日志
函数。
日志(y = x)
Y = 6.0113 7.0493 7.5475 7.8694
datetime
|datenum
|datevec
|cellstr
|字符
|字符串
|持续时间