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 |
| 使用字母 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 |