来源:https://ww2.mathworks.cn/help/matlab/ref/datestr.html?searchHighlight=datestr&s_tid=doc_srchtitle
datestr
说明
datestr
函数创建一个字符数组,用来显示一个或多个时间点。但是,表示时间点的最佳方式是使用 datetime
数据类型。
示例
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。
DateString
= datestr(DateStringIn
)
将 DateStringIn
转换为 day-month-year hour:minute:second 格式的文本。以 DateStringIn
表示的所有日期和时间必须具有相同的格式。
示例
DateString
= datestr(___,'local'
)
返回以当前区域设置的语言表示的日期。此语言是您通过计算机的操作系统选择的语言。如果参数列表中不包括 'local'
,则 datestr
以默认语言(美国英语)返回文本。'local'
可与上述的任何语法结合使用。'local'
参数必须排在参数序列的最后。
示例
全部折叠
将日期时间数组转换为日期字符串
t = 2x1 datetime array
03-Feb-2019 10:13:35
04-Feb-2019 00:00:00
DateString = 2x20 char array
'03-Feb-2019 10:13:35'
'04-Feb-2019 00:00:00'
datestr
返回表示日期和时间的文本,其格式为 day-month-year hour:minute:second。
将日期向量转换为文本
ans =
'02-Apr-2009 11:07:18'
datestr
以默认格式返回表示日期和时间的文本。
将日期和时间转换为特定格式
以 mm/dd/yy
格式设置当前日期的格式。
可以使用符号标识符指定此格式。
您也可以使用数值标识符指定此格式。
可以重新设置日期和时间的格式,也可以显示毫秒。
dt =
'February 03, 2019 10:13:12.086 AM'
将 12 小时制时间字符串转换为等效的 24 小时制形式
将 12 小时制时间 05:32 p.m. 转换为其等效的 24 小时制形式。
将 24 小时制时间 05:32 转换为其等效的 12 小时制形式。
在 formatOut
输出文本中使用 AM
或 PM
不影响会实际成为文本的一部分的字符;它们只确定是否包括这些字符。MATLAB® 基于输入的时间选择 AM
或 PM
。
从自定义格式转换日期字符串
在 datestr
内调用 datenum
以指定表示日期的输入文本的格式。
转换多个日期字符串
以元胞数组传递多个表示日期的字符向量来进行转换。
所有输入日期必须使用相同的格式。例如,以下命令便传递了三个全部使用 mm/dd/yyyy
格式的日期。
ans = 3x11 char array
'16-Sep-2007'
'14-May-1996'
'29-Nov-2010'
datestr
以 day-month-year 格式返回由转换后的日期构成的一个字符数组。
使用不在正常范围内的值转换日期字符串
在 datestr
内调用 datenum
,为下面不在正常范围内的日期 (month=13) 返回预期值。
使用基准年份
更改基准年份以更改年份范围。
使用 1900 作为基准年份。
对于同一日期,使用基准年份 2000。
以本地语言返回日期字符串
以当前区域设置的语言将日期值转换为文本。
在法语区域设置中使用 'local'
参数。
在不指定 'local'
的条件下执行同一调用。
在本例中,输出默认为英语语言。
输入参数
全部折叠
t
- 日期和时间
datetime
数组
日期和时间,指定为 datetime
数组。
数据类型: datetime
DateVector
- 日期向量
矩阵
日期向量,指定为 m
×6 矩阵,其中 m
是完整(六个元素)日期向量的数目。DateVector
的每个元素必须为正整数或负整数值,但秒元素例外,它可以为小数。如果某元素不在常规范围内,则 datestr
会同时调整该日期向量元素及其前面的元素。例如,如果分钟元素为 70
,则 datestr
会将小时元素调整 1
并将分钟元素设置为 10
。如果分钟元素为 -15
,则 datestr
会将小时元素减少 1
并将分钟元素设置为 45
。月份值是一个例外。datestr
将小于 1
的月份值设置为 1
。
示例: [2003,10,24,12,45,07]
数据类型: double
DateNumber
- 日期序列值
正双精度数的数组
日期序列值,指定为正双精度数的数组。
示例: 731878
数据类型: double
表示日期和时间的输出的格式,指定为由符号标识符组成的字符向量或字符串标量,或者与预定义的格式对应的整数。如果不指定 formatOut
,datestr
将返回具有默认格式 dd-mmm-yyyy HH:MM:SS
(day-month-year hour:minute:second) 的文本。默认情况下,如果 HH:MM:SS = 00:00:00
,则返回的文本的格式为 dd-mmm-yyyy
。
下表显示了可用于构造 formatOut
字符向量的符号标识符。可以使用连字符、空格或冒号等字符来分隔字段。
注意
描述日期和时间格式的符号标识符不同于描述 datetime
数组的显示格式的标识符。
符号标识符
|
说明
|
示例
|
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
|
三位数毫秒
|
057
|
AM or PM
|
在表示时间的文本中插入的 AM 或 PM
|
3:45:02 PM
|
formatOut
字符向量必须遵循以下原则:
下表列出了可与 datestr
一起使用的预定义日期格式。
数值标识符
|
日期和时间格式
|
示例
|
-1 (默认值)
|
'dd-mmm-yyyy HH:MM:SS' 或 'dd-mmm-yyyy' (如果 'HH:MM:SS'= 00:00:00 )
|
01-Mar-2000 15:45:17 或 01-Mar-2000
|
0
|
'dd-mmm-yyyy HH:MM:SS'
|
01-Mar-2000 15:45:17
|
1
|
'dd-mmm-yyyy'
|
01-Mar-2000
|
2
|
'mm/dd/yy'
|
03/01/00
|
3
|
'mmm'
|
Mar
|
4
|
'm'
|
M
|
5
|
'mm'
|
03
|
6
|
'mm/dd'
|
03/01
|
7
|
'dd'
|
01
|
8
|
'ddd'
|
Wed
|
9
|
'd'
|
W
|
10
|
'yyyy'
|
2000
|
11
|
'yy'
|
00
|
12
|
'mmmyy'
|
Mar00
|
13
|
'HH:MM:SS'
|
15:45:17
|
14
|
'HH:MM:SS PM'
|
3:45:17 PM
|
15
|
'HH:MM'
|
15:45
|
16
|
'HH:MM PM'
|
3:45 PM
|
17
|
'QQ-YY'
|
Q1-01
|
18
|
'QQ'
|
Q1
|
19
|
'dd/mm'
|
01/03
|
20
|
'dd/mm/yy'
|
01/03/00
|
21
|
'mmm.dd,yyyy HH:MM:SS'
|
Mar.01,2000 15:45:17
|
22
|
'mmm.dd,yyyy'
|
Mar.01,2000
|
23
|
'mm/dd/yyyy'
|
03/01/2000
|
24
|
'dd/mm/yyyy'
|
01/03/2000
|
25
|
'yy/mm/dd'
|
00/03/01
|
26
|
'yyyy/mm/dd'
|
2000/03/01
|
27
|
'QQ-YYYY'
|
Q1-2001
|
28
|
'mmmyyyy'
|
Mar2000
|
29
|
'yyyy-mm-dd' (ISO 8601)
|
2000-03-01
|
30
|
'yyyymmddTHHMMSS' (ISO 8601)
|
20000301T154517
|
31
|
'yyyy-mm-dd HH:MM:SS'
|
2000-03-01 15:45:17
|
DateStringIn
- 要转换的表示日期和时间的文本
字符向量 | 元胞数组 | 字符串数组
要转换的表示日期和时间的文本,指定为单个字符向量、字符向量元胞数组或字符串数组,其中每一行对应一个日期和时间。
datestr
将双字符年份(例如 '79'
)视为处于以当前年份为中心的 100 年范围内。
表示日期和时间的所有文本的日期格式必须相同,并且它们必须为下列日期格式之一。
表示日期和时间的文本的格式
|
示例
|
'dd-mmm-yyyy HH:MM:SS'
|
01-Mar-2000 15:45:17
|
'dd-mmm-yyyy'
|
01-Mar-2000
|
'mm/dd/yyyy'
|
03/01/2000
|
'mm/dd/yy'
|
03/01/00
|
'mm/dd'
|
03/01
|
'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-03-01 15:45:17
|
'yyyy-mm-dd'
|
2000-03-01
|
'yyyy/mm/dd'
|
2000/03/01
|
'HH:MM:SS'
|
15:45:17
|
'HH:MM:SS PM'
|
3:45:17 PM
|
'HH:MM'
|
15:45
|
'HH:MM PM'
|
3:45 PM
|
注意
在从一种日期和时间格式转换为另一种日期和时间时,首先将这些文本传递到 datenum
函数,以便指定输入的格式。此方法可确保正确解释输入日期和时间的格式。例如,请参阅从自定义格式转换日期字符串。
PivotYear
- 100 年日期范围的起始年份
现在减去 50 年 (默认) | 整数
双字符年份所在的 100 年日期范围的起始年份,指定为整数。使用基准年份来解释将年份指定为两个字符的日期。
如果 formatIn
包含一天中的时间,则将根据当前日期、月份和年份的当前时间来计算基准年份。否则,将根据当前日期、月份和年份的午夜来进行计算。
示例: 2000
注意
如果输入日期格式指定四个字符的年份,则后两个字符将被截断,由前两个字符指定年份。例如,如果日期和基准年份指定为 ('25122015','ddmmyyyy',2000)
,则生成的日期为 25-12-2020
,而不是 25-12-2015
。
数据类型: double
输出参数
全部折叠
DateString
- 表示日期和时间的文本
字符向量 | 二维字符数组
表示日期和时间的文本,返回包含 m
行的字符数组,其中 m
是输入日期和时间的总数。默认输出格式为 dd-mmm-yyyy HH:MM:SS
(day-month-year hour:minute:second),仅当小时、分钟和秒均为 0 时,才会隐藏 HH:MM:SS
部分。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。