matlab对日期时间数据的处理-----datestr篇
datestr: 将日期和时间转换为字符串格式
语法格式
DateString = datestr(t)
DateString = datestr(t) 将输入数组 t 中的日期时间值转换为表示日期和时间的文本,也可以使用 char、cellstr 或 string 函数将 datetime 值表示为文本。datestr 函数返回包含 m 行的字符数组,其中 m 是 t 中的日期时间值的总数。默认情况下,datestr 以 day-month-year hour:minute:second 格式返回文本。如果 hour:minute:second 是 00:00:00,则返回的文本的格式为 day-month-year。
t = [datetime('now');datetime('tomorrow')]
DateString = datestr(t)
datestr 返回表示日期和时间的文本,其格式为 day-month-year hour:minute:second。
DateString = datestr(DateVector)
DateString = datestr(DateVector) 将日期向量转换为表示日期和时间的文本。datestr 函数返回包含 m 行的字符数组,其中 m 是 DateVector 中的日期向量的总数。
DateVector = [2019,8,18,21,43,11];
datestr(DateVector)
DateString = datestr(DateNumber)
DateString = datestr(DateNumber) 将日期序列值转换为表示日期和时间的文本。datestr 函数返回包含 m 行的字符数组,其中 m 是 DateNumber 中的日期值的总数。
DateNumber = 725935;
formatOut = 'mmmm-dd-yyyy';
str = datestr(DateNumber,formatOut,'local')
在不指定 'local' 的条件下执行同一调用。
str = datestr(DateNumber,formatOut)
DateString = datestr(___,formatOut)
DateString = datestr(___,formatOut) 使用 formatOut 指定输出文本的格式。您可以将 formatOut 与上述语法中的任何输入参数结合使用。
以 mm/dd/yy 格式设置当前日期的格式。
可以使用符号标识符指定此格式。
formatOut = 'mm/dd/yy';
datestr(now,formatOut)
也可以使用数值标识符指定此格式。
formatOut = 2;
datestr(now,formatOut)
可以重新设置日期和时间的格式,也可以显示毫秒。
dt = datestr(now,'mmmm dd, yyyy HH:MM:SS.FFF AM')
DateString = datestr(DateStringIn)
DateString = datestr(DateStringIn) 将 DateStringIn 转换为 day-month-year hour:minute:second 格式的文本。以 DateStringIn 表示的所有日期和时间必须具有相同的格式。
DateString = datestr(DateStringIn,formatOut,PivotYear)
DateString = datestr(DateStringIn,formatOut,PivotYear) 以 formatOut 指定的格式将 DateStringIn 转换为 DateString,并使用可选的 PivotYear 解释以双字符形式指定年份的文本。
更改基准年份以更改年份范围。
使用 1900 作为基准年份。
DateStringIn = '4/16/55';
formatOut = 1;
PivotYear = 1900;
datestr(DateStringIn,formatOut,PivotYear)
对于同一日期,使用基准年份 2000。
PivotYear = 2000;
datestr(DateStringIn,formatOut,PivotYear)
DateString = datestr(___,'local')
DateString = datestr(___,'local') 返回以当前区域设置的语言表示的日期。此语言是您通过计算机的操作系统选择的语言。如果参数列表中不包括 'local',则 datestr 以默认语言(美国英语)返回文本。'local' 可与上述的任何语法结合使用。'local' 参数必须排在参数序列的最后。
以当前区域设置的语言将日期值转换为文本。
在法语区域设置中使用 'local' 参数。
DateNumber = 725935;
formatOut = 'mmmm-dd-yyyy';
str = datestr(DateNumber,formatOut,'local')
在不指定 'local' 的条件下执行同一调用。
str = datestr(DateNumber,formatOut)
formatOut - 表示日期和时间的输出的格式
-
表示日期和时间的输出的格式,指定为由符号标识符组成的字符向量或字符串标量,或者与预定义的格式对应的整数。如果不指定 formatOut,datestr 将返回具有默认格式 dd-mmm-yyyy HH:MM:SS (day-month-year hour:minute:second) 的文本。默认情况下,如果 HH:MM:SS = 00:00:00,则返回的文本的格式为 dd-mmm-yyyy。
-
下表显示了可用于构造 formatOut 字符向量的符号标识符。可以使用连字符、空格或冒号等字符来分隔字段。
符号标识符
|
说明
|
示例
|
yyyy
|
完整年份
|
1990, 2002
|
yy
|
两位数年份
|
90, 02
|
QQ
|
使用字母 Q 和一个数字的季度年份
|
Q1
|
mmmm
|
使用全名的月份
|
March, December
|
mmm
|
使用前三个字母的月份
|
Mar, Dec
|
mm
|
两位数月份
|
03, 12
|
m
|
使用大写首字母表示月份
|
M, D
|
dddd
|
使用全名的日期
|
Monday, Tuesday
|
ddd
|
使用前三个字母的日期
|
Mon, Tue
|
dd
|
两位数日期
|
05, 20
|
d
|
使用大写首字母表示日期
|
M, T
|
HH
|
两位数小时(使用符号标识符 AM 或 PM 时无前导零)
|
05, 5 AM
|
MM
|
两位数分钟
|
12, 02
|
SS
|
两位数秒
|
07, 59
|
FFF
|
三位数毫秒
|
57
|
AM or PM
|
在表示时间的文本中插入的 AM 或 PM
|
3:45:02 PM
|
formatOut 字符向量必须遵循以下原则:
-
每个字段只能指定一次。例如,不能使用 'yy-mmm-dd-m',因为它有两个月份标识符。一种例外情况是,可以将一个 dd 实例与其他日期标识符的任何一个实例结合使用。例如,'dddd mmm dd yyyy' 是有效输入。
-
当您使用 AM 或 PM 时,还需要提供 HH 字段。
-
QQ 只能单独使用或与年份设定符一起使用。
下表列出了可与 datestr 一起使用的预定义日期格式。
序号
|
显示格式
|
举例
|
0
|
‘dd-mmm-yyyy HH:MM:SS‘
|
'16-Aug-2019 11:42:46'
|
1
|
‘dd-mmm-yyyy‘
|
'16-Aug-2019'
|
2
|
‘mm/dd/yy‘
|
'08/16/19'
|
3
|
‘mmm‘
|
'Aug'
|
4
|
‘m‘
|
'A'
|
5
|
‘mm‘
|
'08'
|
6
|
‘mm/dd‘
|
'08/16'
|
7
|
‘dd‘
|
'16'
|
8
|
‘ddd‘
|
'Fri'
|
9
|
‘d‘
|
'F'
|
10
|
‘yyyy‘
|
'2019'
|
11
|
‘yy‘
|
'19'
|
12
|
‘mmmyy‘
|
'Aug19'
|
13
|
‘HH:MM:SS‘
|
'17:26:36'
|
14
|
‘HH:MM:SS PM‘
|
' 5:26:55 PM'
|
15
|
‘HH:MM‘
|
'17:27'
|
16
|
‘HH:MM PM‘
|
' 5:27 PM'
|
17
|
‘QQ-YY‘
|
'Q3-19'
|
18
|
‘QQ‘
|
'Q3'
|
19
|
‘dd/mm‘
|
'16/08'
|
20
|
‘dd/mm/yy‘
|
'16/08/19'
|
21
|
‘mmm.dd,yyyy HH:MM:SS‘
|
'Aug.16,2019 17:36:18'
|
22
|
‘mmm.dd,yyyy‘
|
'Aug.16,2019'
|
23
|
‘mm/dd/yyyy‘
|
'08/16/2019'
|
24
|
‘dd/mm/yyyy‘
|
'16/08/2019'
|
25
|
‘yy/mm/dd‘
|
'19/08/16'
|
26
|
‘yyyy/mm/dd‘
|
'2019/08/16'
|
27
|
‘QQ-YYYY‘
|
'Q3-2019'
|
28
|
‘mmmyyyy‘
|
'Aug2019'
|
29
|
(ISO 8601) ‘yyyy-mm-dd‘
|
'2019-08-16'
|
30
|
(ISO 8601) ‘yyyymmddTHHMMSS‘
|
20190816T174016'
|
31
|
‘yyyy-mm-dd HH:MM:SS‘
|
'2019-08-16 17:40:28'
|
DateStringIn - 要转换的表示日期和时间的文本
-
要转换的表示日期和时间的文本,指定为单个字符向量、字符向量元胞数组或字符串数组,其中每一行对应一个日期和时间。
-
datestr 将双字符年份(例如 '79')视为处于以当前年份为中心的 100 年范围内。
-
表示日期和时间的所有文本的日期格式必须相同,并且它们必须为下列日期格式之一。
表示日期和时间的文本的格式
|
示例
|
'dd-mmm-yyyy HH:MM:SS'
|
2000/3/1 15:45
|
'dd-mmm-yyyy'
|
1-Mar-00
|
'mm/dd/yyyy'
|
03/01/2000
|
'mm/dd/yy'
|
03/01/00
|
'mm/dd'
|
3月1日
|
'mmm.dd,yyyy HH:MM:SS'
|
Mar.01,2000 15:45:17
|
'mmm.dd,yyyy'
|
Mar.01,2000
|
'yyyy-mm-dd HH:MM:SS'
|
2000/3/1 15:45
|
'yyyy-mm-dd'
|
2000/3/1
|
'yyyy/mm/dd'
|
2000/3/1
|
'HH:MM:SS'
|
15:45:17
|
'HH:MM:SS PM'
|
3:45:17 PM
|
'HH:MM'
|
15:45
|
'HH:MM PM'
|
3:45 PM
|