matlab中datest() 將日期和時間轉換為字符串格式


來源:https://ww2.mathworks.cn/help/matlab/ref/datestr.html?searchHighlight=datestr&s_tid=doc_srchtitle

datestr

將日期和時間轉換為字符串格式

全頁折疊
 

說明

datestr 函數創建一個字符數組,用來顯示一個或多個時間點。但是,表示時間點的最佳方式是使用 datetime 數據類型。

示例

DateString = datestr(t) 將輸入數組 t 中的日期時間值轉換為表示日期和時間的文本。但是,您也可以使用 charcellstrstring 函數將 datetime 值表示為文本。

datestr 函數返回包含 m 行的字符數組,其中 mt 中的日期時間值的總數。默認情況下,datestr 以 day-month-year hour:minute:second 格式返回文本。如果 hour:minute:second 是 00:00:00,則返回的文本的格式為 day-month-year。

示例

DateString = datestr(DateVector) 將日期向量轉換為表示日期和時間的文本。datestr 函數返回包含 m 行的字符數組,其中 mDateVector 中的日期向量的總數。

示例

DateString = datestr(DateNumber) 將日期序列值轉換為表示日期和時間的文本。datestr 函數返回包含 m 行的字符數組,其中 mDateNumber 中的日期值的總數。

示例

DateString = datestr(___,formatOut) 使用 formatOut 指定輸出文本的格式。您可以將 formatOut 與上述語法中的任何輸入參數結合使用。

DateString = datestr(DateStringIn)DateStringIn 轉換為 day-month-year hour:minute:second 格式的文本。以 DateStringIn 表示的所有日期和時間必須具有相同的格式。

示例

DateString = datestr(DateStringIn,formatOut,PivotYear)formatOut 指定的格式將 DateStringIn 轉換為 DateString,並使用可選的 PivotYear 解釋以雙字符形式指定年份的文本。

示例

DateString = datestr(___,'local') 返回以當前區域設置的語言表示的日期。此語言是您通過計算機的操作系統選擇的語言。如果參數列表中不包括 'local',則 datestr 以默認語言(美國英語)返回文本。'local' 可與上述的任何語法結合使用。'local' 參數必須排在參數序列的最后。

 

示例

全部折疊

將日期時間數組轉換為日期字符串

t = [datetime('now');datetime('tomorrow')]
t = 2x1 datetime array
   03-Feb-2019 10:13:35
   04-Feb-2019 00:00:00

DateString = datestr(t)
DateString = 2x20 char array '03-Feb-2019 10:13:35' '04-Feb-2019 00:00:00' 

datestr 返回表示日期和時間的文本,其格式為 day-month-year hour:minute:second。

 
 

將日期向量轉換為文本

DateVector = [2009,4,2,11,7,18];

datestr(DateVector)
ans = 
'02-Apr-2009 11:07:18'

datestr 以默認格式返回表示日期和時間的文本。

 
 

將日期和時間轉換為特定格式

mm/dd/yy 格式設置當前日期的格式。

可以使用符號標識符指定此格式。

formatOut = 'mm/dd/yy';
datestr(now,formatOut)
ans = 
'02/03/19'

您也可以使用數值標識符指定此格式。

formatOut = 2;
datestr(now,formatOut)
ans = 
'02/03/19'

可以重新設置日期和時間的格式,也可以顯示毫秒。

dt = datestr(now,'mmmm dd, yyyy HH:MM:SS.FFF AM')
dt = 
'February 03, 2019 10:13:12.086 AM'
 
 

將 12 小時制時間字符串轉換為等效的 24 小時制形式

將 12 小時制時間 05:32 p.m. 轉換為其等效的 24 小時制形式。

datestr('05:32 PM','HH:MM')
ans = 
'17:32'

將 24 小時制時間 05:32 轉換為其等效的 12 小時制形式。

datestr('05:32','HH:MM PM')
ans = 
' 5:32 AM'

formatOut 輸出文本中使用 AMPM 不影響會實際成為文本的一部分的字符;它們只確定是否包括這些字符。MATLAB® 基於輸入的時間選擇 AMPM

 
 

從自定義格式轉換日期字符串

datestr 內調用 datenum 以指定表示日期的輸入文本的格式。

formatOut = 'dd mmm yyyy';
datestr(datenum('16-04-55','dd-mm-yy',1900),formatOut)
ans = 
'16 Apr 1955'
 
 

轉換多個日期字符串

以元胞數組傳遞多個表示日期的字符向量來進行轉換。

所有輸入日期必須使用相同的格式。例如,以下命令便傳遞了三個全部使用 mm/dd/yyyy 格式的日期。

datestr(datenum({'09/16/2007';'05/14/1996';'11/29/2010'}, ... 'mm/dd/yyyy'))
ans = 3x11 char array
    '16-Sep-2007'
    '14-May-1996'
    '29-Nov-2010'

datestr 以 day-month-year 格式返回由轉換后的日期構成的一個字符數組。

 
 

使用不在正常范圍內的值轉換日期字符串

datestr 內調用 datenum,為下面不在正常范圍內的日期 (month=13) 返回預期值。

datestr(datenum('13/24/88','mm/dd/yy'))
ans = 
'24-Jan-1989'
 
 

使用基准年份

更改基准年份以更改年份范圍。

使用 1900 作為基准年份。

DateStringIn = '4/16/55';
formatOut = 1;
PivotYear = 1900;
datestr(DateStringIn,formatOut,PivotYear)
ans = 
'16-Apr-1955'

對於同一日期,使用基准年份 2000。

PivotYear = 2000;
datestr(DateStringIn,formatOut,PivotYear)
ans = 
'16-Apr-2055'
 
 

以本地語言返回日期字符串

以當前區域設置的語言將日期值轉換為文本。

在法語區域設置中使用 'local' 參數。

DateNumber = 725935;
formatOut = 'mmmm-dd-yyyy';
str = datestr(DateNumber,formatOut,'local')
str =
Juillet-17-1987

在不指定 'local' 的條件下執行同一調用。

str = datestr(DateNumber,formatOut)
str =
July-17-1987

在本例中,輸出默認為英語語言。

輸入參數

全部折疊

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 - 表示日期和時間的輸出的格式
-1 (默認) | 字符向量 | 字符串標量 | 整數

表示日期和時間的輸出的格式,指定為由符號標識符組成的字符向量或字符串標量,或者與預定義的格式對應的整數。如果不指定 formatOutdatestr 將返回具有默認格式 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

兩位數小時
(使用符號標識符 AMPM 時無前導零)

05, 5 AM

MM

兩位數分鍾

12, 02

SS

兩位數秒

07, 59

FFF

三位數毫秒

057

AM or PM

在表示時間的文本中插入的 AMPM

3:45:02 PM

formatOut 字符向量必須遵循以下原則:

  • 每個字段只能指定一次。例如,不能使用 'yy-mmm-dd-m',因為它有兩個月份標識符。一種例外情況是,可以將一個 dd 實例與其他日期標識符的任何一個實例結合使用。例如,'dddd mmm dd yyyy' 是有效輸入。

  • 當您使用 AMPM 時,還需要提供 HH 字段。

  • QQ 只能單獨使用或與年份設定符一起使用。

下表列出了可與 datestr 一起使用的預定義日期格式。

數值標識符

日期和時間格式

示例

-1(默認值)

'dd-mmm-yyyy HH:MM:SS''dd-mmm-yyyy'(如果 'HH:MM:SS'= 00:00:00

01-Mar-2000 15:45:1701-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 部分。

提示

  • 要轉換未采用預定義的 MATLAB® 日期格式的文本,需先用 datenumdatevec 函數將文本轉換為日期值。

擴展功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM