MATLAB日期和時間處理

2020-07-16 10:05:17
MATLAB 中規定了 3 種日期和時間格式——日期字元、序列日期數和日期向量, 分別舉例如下:
日期字元 '25-Nov-2019 09:58:59'
日期向量 [2019 11 25 09 58 59]
序列日期數 7.3188e+005

MATLAB日期字串

用日期字串顯示日期和時間資訊,有多種不同的風格樣式。

例如,2019 年 11 月 25 日上午 10:08:22 可以表示為:
25-Nov-2019 10:08:22
也可以表示為:
25/04/19
10:08:22

MATLAB序列日期數

序列日期數表示從一個固定的日期開始到指定的日期經過了多少天。

在 MATLAB 中,序列日期數 1 代表 0000 年的 1 月 1 日;而 0000 年僅是一個參考點,不是特定的一個實際年。

MATLAB 也使用序列時間表示一天中的幾分之幾,例如,下午 6 點等於 0.75 日。

now() 函數能夠得到當前日時的序列日期數:
>> dt = now
dt = 
    7.3710e+05

MATLAB日期向量

日期向量是 MATLAB 一些函數的內部格式,使用者不能在計算機中使用它們。日期向量包含元素 [year month day hour minute seconds]。

clock() 函數返回當前日時的日期向量。
>> clock
ans = 
    1.0e+03 *
        2.0180 0.0020 0.0040 0.0210 0.0160 0.0117

轉換日期格式

不同日期相互轉換的函數有 datenum()、datestr() 和 datevec()。其中,datenum() 是把其他格式轉換為序列日期數,datestr() 是把其他格式轉換為字串。datevec() 是把其他格式轉換為日期向量。

例如:
>> t = datenum('25/11/2019 10:20')
t = 
    7.3710e+05
>> datevec(t)
ans = 
    2019 11 25 10 20 0