MATLAB – 日期和時間



Matlab 提供了豐富的命令來處理日期和時間。您可以以不同的格式顯示日期和時間,無論是字串還是字元向量。您還可以執行數學運算,例如對日期和時間值進行加、減、排序、連線和繪圖。

以下是一些帶有示例的命令,用於在 Matlab 中獲取當前日期和時間。日期和時間的陣列可以以不同的格式顯示,在這裡我們將討論 Matlab 中表示它的不同方法。

使用 date 命令

date 命令返回當前日期,格式為 dd-MMM-yyyy 的字元向量。此格式將月份的天數 (dd) 表示為數字,月份名稱 (MMM) 表示為其三個字母的縮寫,年份 (yyyy) 表示為數字。返回的日期將不考慮本地時間,而是從協調世界時 (UTC) 獲取當前日期。

語法

date

示例

a = date

當您在 Matlab 中執行此命令時,輸出將為:

a = 30-Aug-2024

使用 datetime 命令

datetime 命令返回一個帶有時間的日期,表示時間點。

  • datetime – 返回一個包含當前日期和時間的陣列。
  • datetime(relativeDay) – 這裡 relativeDay 可以輸入“today”、“yesterday”、“tomorrow”或“now”。
  • datetime(DateStrings) – 這裡 DateStrings 可以是陣列格式的日期和時間。
  • datetime(DateVectors) – 日期向量是一個 m×6 或 m×3 的矩陣。對於 m×6,它將包含日、月、年、時、分和秒。對於 m×3,它將是一個包含日、月和年的矩陣。
  • datetime(Y,M,D) – 帶有年、月和日的 datetime。
  • datetime(Y,M,D,H,MI,S) – 帶有年、月、日、時、分和秒的 datetime。

示例 1

只需使用 datetime() 方法即可顯示當前日期和時間,如下所示:

k = datetime

執行後的輸出如下:

>> k = datetime

k = 

   datetime

   24-May-2023 07:56:32

>>

示例 2

此示例將以本地時區顯示時間。

time_now = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z')

當您在 Matlab 命令視窗中執行相同的命令時,輸出為:

>> time_now = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z')

time_now = 

   datetime

   24-May-2023 07:48:50 +0530

>>

美國/紐約時區的日期和時間。

>>  time_now = datetime('now','TimeZone','America/New_York','Format','d-MMM-y HH:mm:ss Z')

time_now = 

   datetime

   23-May-2023 22:23:01 -0400

>> 

示例 3

在此示例中,我們將日期字串作為向量陣列。

DateasStrings = {'2023-05-22';'2023-05-23'};
t = datetime(DateasStrings)

執行後,您將得到:

>>  DateasStrings = {'2023-05-22';'2023-05-23'};
t = datetime(DateasStrings)


t = 

   2×1 datetime array

   22-May-2023
   23-May-2023

>>  

您還可以將給定的陣列轉換為所需的格式,如下所示

DateStrings = {'2022-05-26';'2022-08-03'};
t = datetime(DateStrings, 'InputFormat','yyyy-MM-dd')

在上面,日期將轉換為 yyyy-MM-dd 格式,執行後的輸出如下:

>> DateStrings = {'2022-05-26';'2022-08-03'};
t = datetime(DateStrings ,'InputFormat','yyyy-MM-dd')


t = 

   2×1 datetime array

   26-May-2022
   03-Aug-2022

>> 

示例 4

您可以將年、月和日作為輸入提供給 datetime,它將返回日期。

datetime(2023, 5, 12)

上面的輸出為:

>> datetime(2023, 5, 12)

ans = 

   datetime

   12-May-2023

>> 

示例 5

您可以像下面這樣輸入年、月、日、時、分和秒:

datetime(2023,5,24,8,21,5)

執行後的輸出為:

>> datetime(2023,5,24,8,21,5)

ans = 

   datetime

   24-May-2023 08:21:05

>> 

使用 Calendar 方法

此方法將為您提供指定年份和月份的日曆。預設情況下,它將返回當前年份和月份的日曆。

語法

calendar  // current year and month will be displayed.

calendar(y,m)  // the given year month will be displayed

calendar(d)  // Here d datetime value or text timestamp that can be year month and day .As per the value of d , the calendar for that month and year will be displayed.

示例 1

讓我們檢查日曆的輸出。

calendar

輸出為:

                   May 2023
     S     M    Tu     W    Th     F     S
     0     1     2     3     4     5     6
     7     8     9    10    11    12    13
    14    15    16    17    18    19    20
    21    22    23    24    25    26    27
    28    29    30    31     0     0     0
     0     0     0     0     0     0     0

示例 2

在此示例中,年份和月份將傳遞給日曆。

calendar(1983, 2)

輸出為:

                   Feb 1983
     S     M    Tu     W    Th     F     S
     0     0     1     2     3     4     5
     6     7     8     9    10    11    12
    13    14    15    16    17    18    19
    20    21    22    23    24    25    26
    27    28     0     0     0     0     0
     0     0     0     0     0     0     0

示例 3

在此示例中,我們將使用 datetime 作為輸入傳遞給日曆,如下所示:

d = datetime("now")
calendar(d)

執行後的輸出為:

>> d = datetime("now")
calendar(d)


d = 

   datetime

   24-May-2023 08:44:57

                   May 2023
     S     M    Tu     W    Th     F     S
     0     1     2     3     4     5     6
     7     8     9    10    11    12    13
    14    15    16    17    18    19    20
    21    22    23    24    25    26    27
    28    29    30    31     0     0     0
     0     0     0     0     0     0     0

>>

使用 dateshift() 方法移動日期時間

dateshift() 方法負責移動日期或生成日期和時間的序列。

語法

t = dateshift(t,'start',unit)   // Here t is the datetime.It will shift the datetime by the unit given to the start.

t = dateshift(t,'end',unit) // Here t is the datetime. It will shift the datetime by the given unit to the end.


t = dateshift(t,'dayofweek',dow) // Here datetime will be shifted to the given dayofweek, if the current date falls on the same dayofweek it will return the same date.

這裡我們將嘗試一些示例,例如將當前日期移動到年初。將當前日期移動到月末。

示例 1

在此示例中,當前日期 2023 年 5 月 24 日將移動到年初,即 2023 年 1 月 1 日。

t = datetime('today')
t1 = dateshift(t, 'start', 'year')

執行後的輸出為:

>> t = datetime('today')
t1 = dateshift(t, 'start', 'year')


t = 

   datetime

   24-May-2023


t1 = 

   datetime

   01-Jan-2023

>>

示例 2

在此示例中,我們將當前日期移動到月末。

t = datetime('today')
t1 = dateshift(t, 'end', 'month')

執行後的輸出為:

>> t = datetime('today')
t1 = dateshift(t, 'end', 'month')


t = 

  datetime

   24-May-2023


t1 = 

  datetime

   31-May-2023

>>

我們還可以使用 year 作為單位將其移動到年末。

t = datetime('today')
t1 = dateshift(t, 'end', 'year')

輸出為

>> t = datetime('today')
t1 = dateshift(t, 'end', 'year')


t = 

  datetime

   24-May-2023


t1 = 

  datetime

   31-Dec-2023

>> 

日期和時間的算術運算

我們將討論日期和時間的算術運算,例如加法和減法。透過加法,我們將獲得未來的日期時間,透過減法,我們將獲得過去的日期時間。像加、減、乘等運算可以對日期和時間執行,就像對其他資料型別一樣。您可以使用 hours()、minutes()、days()、seconds()、years() 來對給定的日期時間進行加減。

讓我們看一些例子。

示例 1

在此示例中,我們將使用 datetime() 方法來顯示當前日期和時間。我們將新增 2 個小時,並顯示日期時間,如下所示。

time1 = datetime('now')
time2 = time1 + hours(2)

在 Matlab 中執行後的輸出如下:

>> time1 = datetime('now')
time2 = time1 + hours(2)


time1 = 

  datetime

   17-Jun-2023 17:17:52


time2 = 

  datetime

   17-Jun-2023 19:17:52

>>

如果您想要未來的日期和時間並顯示向量陣列,則可以按如下方式進行:

time1 = datetime('now')
time2 = time1 + hours(2:5)

執行後的輸出為:

>> time1 = datetime('now')
time2 = time1 + hours(2:5)


time1 = 

  datetime

   17-Jun-2023 17:18:36


time2 = 

  1×4 datetime array

   17-Jun-2023 19:18:36   17-Jun-2023 20:18:36   17-Jun-2023 21:18:36   17-Jun-2023 22:18:36

>>

在上面的示例中,您可以看到日期時間的向量陣列,它們之間的時間間隔相差 2 小時。

示例 2

在此示例中,讓我們執行減法運算,如下所示。

time1 = datetime('now')
time2 = time1 - hours(2)

datetime() 方法用於提供當前日期和時間。從給定的時間中減去 2 個小時。hours(2) 用於提供小時數,類似地,您可以使用 minutes() 方法從給定的時間中減去分鐘數。

>> time1 = datetime('now')
time2 = time1 - hours(2)

time1 = 

  datetime

   17-Jun-2023 17:22:27


time2 = 

  datetime

   17-Jun-2023 15:22:27

>> 

讓我們也使用 minutes() 方法,如下所示。

time1 = datetime('now')
time2 = time1 - minutes(45)

執行後的輸出如下:

>> time1 = datetime('now')
time2 = time1 - minutes(45)


time1 = 

  datetime

   17-Jun-2023 17:26:54


time2 = 

  datetime

   17-Jun-2023 16:41:54

>> 

讓我們也嘗試使用減法運算來獲取向量陣列,如下所示

time1 = datetime('now')
time2 = time1 - hours(2:5)

執行後的輸出如下:

>> time1 = datetime('now')
time2 = time1 - hours(2:5)


time1 = 

  datetime

   17-Jun-2023 17:32:04


time2 = 

  1×4 datetime array

   17-Jun-2023 15:32:04   17-Jun-2023 14:32:04   17-Jun-2023 13:32:04   17-Jun-2023 12:32:04

>> 

示例 3

在上面的示例中,我們使用了 hours()、minutes()、datetime() 方法進行加減。現在讓我們使用 days() 方法來獲取未來的或過去的日期。

time1 = datetime('now')
time2 = time1 + days(5)

在上述情況下,將向當前日期新增 5 天,並顯示日期時間。

執行後的輸出如下:

>> time1 = datetime('now')
time2 = time1 + days(5)


time1 = 

  datetime

   17-Jun-2023 17:42:42


time2 = 

  datetime

   22-Jun-2023 17:42:42

>> 

讓我們也使用 days() 方法減去並獲取過去的日期時間。

time1 = datetime('now')
time2 = time1 - days(5)

執行後的輸出如下:

>> time1 = datetime('now')
time2 = time1 - days(5)


time1 = 

  datetime

   17-Jun-2023 17:45:19


time2 = 

  datetime

   12-Jun-2023 17:45:19

>> 
廣告
© . All rights reserved.