MATLAB中datetime函数的使用

目录

语法

说明

示例

指定特定时区的当前日期和时间

基于字符向量创建日期和时间

基于字符串数组创建日期和时间

从表示小数秒的文本转换为时间

从包含字面字符的文本创建日期和时间

从外语文本创建日期和时间

基于向量的日期和时间

将 Excel 日期数字转换为日期时间


        datetime 数据类型表示时间点,如 2020 年 8 月 24 日上午 10:50:30。datetime 数组指定与数组中存储的每个时间点相关联的年、月、日、小时、分钟和秒分量(使用前 ISO 日历)。

        此外,datetime 数组提供:

  • 输出显示和输入文本解析的灵活格式。

  • 存储精确到纳秒的秒数

  • 可处理时区、夏令时和闰秒的属性。

语法

t = datetime
t = datetime(relativeDay)
t = datetime(DateStrings)
t = datetime(DateStrings,'InputFormat',infmt)
t = datetime(DateVectors)
t = datetime(Y,M,D)
t = datetime(Y,M,D,H,MI,S)
t = datetime(Y,M,D,H,MI,S,MS)
t = datetime(X,'ConvertFrom',dateType)
t = datetime(___,Name,Value)

说明

t = datetime 返回一个对应于当前日期和时间的标量 datetime 数组。

t = datetime(relativeDay) 使用 relativeDay 指定的日期。relativeDay 输入可以是 'today'、'tomorrow'、'yesterday' 或 'now'。

t = datetime(DateStrings) 根据表示时间点的 DateStrings 中的文本创建一个日期时间值数组。

t = datetime(DateStrings,'InputFormat',infmt) 使用由 infmt 指定的格式来解释 DateStrings。输入参数 DateStrings 中的所有值必须具有相同的格式。

        要避免理解不清类似的格式,请指定 'InputFormat' 及其相应的值 infmt。

        要控制 t 的显示格式,请指定 'Format' 名称-值对组参数,或设置 t 的 Format 属性。

t = datetime(DateVectors) 根据 DateVectors 中的日期向量创建一个由日期时间值组成的列向量。

t = datetime(Y,M,D) 为 Y、M 和 D(年、月、日)数组的对应元素创建一个日期时间值数组。这些数组的大小必须相同(或者,其中任一数组可以是标量)。还可以将输入参数指定为日期向量 [Y M D]。

t = datetime(Y,M,D,H,MI,S) 还创建 H、MI 和 S(小时、分钟和秒)数组。所有数组的大小必须相同(或者,其中任一数组可以是标量)。还可以将输入参数指定为日期向量 [Y M D H MI S]。

t = datetime(Y,M,D,H,MI,S,MS) 添加一个 MS(毫秒)数组。所有数组的大小必须相同(或者,其中任一数组可以是标量)。

t = datetime(X,'ConvertFrom',dateType) 将 X 中的数值转换为 datetime 数组 t。dateType 参数指定 X 中的值的类型。

        如果 X 包含 POSIX® 时间或表示本地时间的儒略日期,请使用 'TimeZone' 名称-值对组参数为 t 指定适当的时区。如果不指定时区,X 中的 POSIX 时间或儒略日期将被视为 UTC 时间,而不是本地时间。

t = datetime(___,Name,Value) 使用一个或多个名称-值对组参数以及先前语法中的任何输入参数来指定其他选项。例如,您可以使用 'Format' 名称-值对组参数指定 t 的显示格式。

        要在根据文本创建日期时间值时获得最佳性能,请指定 'Format' 或 'InputFormat' 及其相应的值 infmt。

示例

指定特定时区的当前日期和时间

        在本地系统时区中指定当前日期和时间。

t = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z')


t = datetime
   2-Oct-2021 19:49:54 -0400

        在韩国首尔表示的时区中指定当前日期和时间。

t = datetime('now','TimeZone','Asia/Seoul','Format','d-MMM-y HH:mm:ss Z')


t = datetime
   3-Oct-2021 08:49:54 +0900

基于字符向量创建日期和时间

        基于字符向量元胞数组创建 datetime 数组。

DateStrings = {'2014-05-26';'2014-08-03'};
t = datetime(DateStrings,'InputFormat','yyyy-MM-dd')


t = 2x1 datetime
   26-May-2014
   03-Aug-2014

        t 中的日期时间值使用默认格式显示,而不是使用输入日期的格式显示。

基于字符串数组创建日期和时间

        从 R2016b 开始,可以使用 string 函数创建字符串数组,并将其转换为日期时间值。

str = ["2016-03-24","2016-04-19"]


str = 1x2 string
    "2016-03-24"    "2016-04-19"

        转换字符串,将输入格式指定为 yyyy-MM-dd。必须将格式指定为字符向量,即使 str 是字符串数组。

t = datetime(str,'InputFormat','yyyy-MM-dd')


t = 1x2 datetime
   24-Mar-2016   19-Apr-2016

从表示小数秒的文本转换为时间

        从表示毫秒精度的日期和时间的文本创建一个 datetime 值。要转换 datetime 函数需要更多信息才能解析其格式的文本,请指定 'InputFormat' 名称-值对组参数。

d = '2018-06-25 11:23:37.712';
t = datetime(d,'InputFormat','yyyy-MM-dd HH:mm:ss.SSS')


t = datetime
   25-Jun-2018 11:23:37

        转换会保留小数秒。但是,默认情况下 datetime 数组不显示小数秒。要显示小数秒,请指定 'Format' 名称-值对组或 Format 属性。

t.Format = 'MMM dd, yyyy HH:mm:ss.SSS'


t = datetime
   Jun 25, 2018 11:23:37.712

        'InputFormat' 参数仅适用于从输入文本进行的转换。Format 属性指定任何 datetime 数组的显示。

从包含字面字符的文本创建日期和时间

        将 ISO 8601 格式的日期转换为日期时间值。

        创建包含 ISO 8601 格式的日期的字符向量元胞数组。在该格式下,字母 T 用作隔开日期和时间的分隔符。每个字符向量包含一个时区偏移量。字母 Z 表示与 UTC 之间无偏移量。

DateStrings = {'2014-05-26T13:30-05:00';'2014-08-26T13:30-04:00';'2014-09-26T13:30Z'}


DateStrings = 3x1 cell
    {'2014-05-26T13:30-05:00'}
    {'2014-08-26T13:30-04:00'}
    {'2014-09-26T13:30Z'     }

        将字符向量转换为日期时间值。指定输入格式时,将字母 T 包含在单引号中以指示它是一个字面字符。使用 TimeZone 名称-值对组参数指定输出日期时间数组的时区。

t = datetime(DateStrings,'InputFormat','uuuu-MM-dd''T''HH:mmXXX','TimeZone','UTC')

t = 3x1 datetime
   26-May-2014 18:30:00
   26-Aug-2014 17:30:00
   26-Sep-2014 13:30:00

        t 中的日期时间值以默认格式显示。

从外语文本创建日期和时间

        创建包含用法语表示的日期的字符向量元胞数组。

C = {'8 avril 2013','9 mai 2013';'10 juin 2014','11 juillet 2014'}


C = 2x2 cell
    {'8 avril 2013'}    {'9 mai 2013'     }
    {'10 juin 2014'}    {'11 juillet 2014'}

        将 C 中字符向量转换为日期时间值。如果计算机的区域设置是使用英语,则必须指定 'Locale' 名称-值对组参数来指示字符串是用法语表示的。

t = datetime(C,'InputFormat','d MMMM yyyy','Locale','fr_FR')


t = 2x2 datetime
   08-Apr-2013   09-May-2013
   10-Jun-2014   11-Jul-2014

        t 中的日期时间值以默认格式和 MATLAB 所使用的语言显示,具体取决于系统区域设置。

基于向量的日期和时间

        根据单个年、月和日值数组创建一个 datetime 数组。

        创建年值为 Y、日值为 D 的示例数值数组。在本例中,月值 M 是标量。

Y = [2014;2013;2012];
M = 01;
D = [31;30;31];

        创建数组 datetime。

t = datetime(Y,M,D)


t = 3x1 datetime
   31-Jan-2014
   30-Jan-2013
   31-Jan-2012

        使用 Format 名称-值对组参数指定输出的自定义显示格式。

t = datetime(Y,M,D,'Format','eeee, MMMM d, y')


t = 3x1 datetime
   Friday, January 31, 2014   
   Wednesday, January 30, 2013
   Tuesday, January 31, 2012  

将 Excel 日期数字转换为日期时间

        创建一个由 Excel® 日期数字组成的示例数组,这些日期数字表示自 1900 年 1 月 0 日以来的众多日期。

X = [39558, 39600; 39700, 39800]


X = 2×2

       39558       39600
       39700       39800

        将 X 中的值转换为日期时间值。

t = datetime(X,'ConvertFrom','excel')


t = 2x2 datetime
   20-Apr-2008   01-Jun-2008
   09-Sep-2008   18-Dec-2008

提示

  • ​要查看 datetime 函数列表,可参考日期和时间

  • ​有关接受 datetime 数组作为输入参数的 MATLAB 核心函数的列表,可参考支持日期和时间数组的核心函数

猜你喜欢

转载自blog.csdn.net/jk_101/article/details/125632062