メインコンテンツ

MATLAB での日付と時刻の表現

日付と時刻の情報を格納する主な方法は datetime 配列の使用です。これは、算術、並べ替え、比較、プロット、書式設定された表示をサポートします。算術的差の結果は配列 duration で返され、カレンダー ベースの関数を使用している場合は calendarDuration 配列で返されます。

たとえば、2 つの日付を表す datetime 配列を作成します。日付は、2025 年 6 月 28 日の午前 6 時と、2025 年 6 月 28 日の午前 7 時とします。datetime 値の年、月、日、時、分、秒の成分に数値を指定します。

t = datetime(2014,6,28,6:7,0,0)
t = 1×2 datetime
   28-Jun-2014 06:00:00   28-Jun-2014 07:00:00

datetime 配列のプロパティに新しい値を代入することによって、日付または時刻の成分の値を変更できます。たとえば、Day プロパティに新しい値を代入することによって、各値の日番号を変更します。

t.Day = 27:28
t = 1×2 datetime
   27-Jun-2014 06:00:00   28-Jun-2014 07:00:00

この配列の Format プロパティを変更することによって、表示形式を変更します。たとえば、日付と時刻を ISO 8601 形式 (ミリ秒の数字を含む) で表現する形式を指定します。表示形式を変更しても、datetime 配列内の値は変わりません。

t.Format = "yyyy-MM-dd HH:mm:ss.SSS"
t = 1×2 datetime
   2014-06-27 06:00:00.000   2014-06-28 07:00:00.000

1 つの datetime 配列を他のものから減算すると、結果は duration 配列になります。duration 配列内の値は、固定長の 1 日を 24 時間とする日数単位の時間の長さを表します。つまり、duration1 は 1 日に相当します。duration 配列の既定の表示形式は hh:mm:ss です。つまり、1 日の長さの duration 値は 24:00:00 と表示されます。

t2 = datetime(2014,6,28,6:7,0:1,0)
t2 = 1×2 datetime
   28-Jun-2014 06:00:00   28-Jun-2014 07:01:00

d = t2 - t
d = 1×2 duration
   24:00:00   00:01:00

Format プロパティを変更することによって、duration 配列の表示形式を変更できます。時間の長さは変わりませんが、異なる時間単位で表示できます。たとえば、表示形式を秒単位に変更します。

d.Format = "s"
d = 1×2 duration
   86400 sec      60 sec

secondsminuteshoursdays、または years 関数を使用して、指定した時間単位で時間の長さを表す duration 配列を作成できます。また、これらの関数は、表示形式を対応する時間単位に設定します。たとえば、days 関数を使用して、1 日が正確に 24 時間である duration 値 2.5 日を作成します。表示形式は自動的に日単位に設定されます。

d = days(2.5)
d = duration
   2.5 days

calendarDuration 配列を作成することもできます。duration 配列と同様に、calendarDuration 配列も時間の長さを表します。しかし、calendarDuration 配列は、固定された時間の長さを表すのではなく、可変長のカレンダー単位の時間を表します。たとえば、カレンダー月の長さは、示される月に応じて 28 日、29 日、30 日、または 31 日になります。カレンダーの日、月、四半期、年を含む datetime 配列での計算には、calendarDuration 配列を使用します。

指定した時間単位で calendarDuration 配列を作成するには、caldayscalweekscalmonthscalquarters、および calyears 関数を使用します。たとえば、2 か月の calendarDuration 値を指定します。

L = calmonths(2)
L = calendarDuration
   2mo

カレンダー月数とカレンダー日数を加算します。日数は月数から独立して扱われます。これは、1 か月の日数が固定されておらず、calendarDuration 値を特定の datetime 配列に加算するか、datetime 配列から減算するまで、月の日数を決定できないからです。

L = calmonths(2) + caldays(35)
L = calendarDuration
   2mo 35d

calendarDurationdatetime 配列に加算し、新しい日付と時刻を計算します。この演算の結果として別の datetime 配列が得られます。ここでは、10 月 2 日は 6 月 28 日の 2 か月 35 日後です。

t3 = t2 + L
t3 = 1×2 datetime
   02-Oct-2014 06:00:00   02-Oct-2014 07:01:00

要約すると、日付と時刻を表現する方法はいくつかあり、MATLAB® には各アプローチ用のデータ型があります。

  • 時点を表すには、datetime データ型を使用します。たとえば、数値またはテキストの入力を指定して datetime を使用して、2014 年 6 月 18 日水曜日 10:00:00 を表します。

    • datetime(2014,6,18,10,0,0)

    • datetime("2014-06-18 10:00:00")

  • 固定長の単位で時間の長さを表すには、duration データ型を使用します。duration データ型を使用する場合、1 日は常に 24 時間と等しく、1 年は常に 365.2425 日と等しくなります。たとえば、hoursminutes を使用して 72 時間 10 分を表します。

    • hours(72) + minutes(10)

  • 可変長の単位でカレンダーの時間の長さを表すには、calendarDuration データ型を使用します。calendarDuration データ型は、夏時間の変更とうるう年も考慮するため、1 カレンダー日が 24 時間より長かったり短かったりする場合があり、1 カレンダー年は 365 日または 366 日の場合があります。たとえば、calmonths を使用してカレンダー月を表します。

    • calmonths(1)

参考

| |

トピック