Main Content

datevec

日付と時刻を成分のベクトルに変換

説明

メモ

日付と時刻は日付ベクトルで表すことができますが、時点を表すには datetime 値を、経過時間を表すには duration 値または calendarDuration 値を使用することをお勧めします。コードの更新の詳細については、バージョン履歴またはシリアル日付値と日付文字列の推奨されないインスタンスの置き換えを参照してください。

DateVector = datevec(t) は、datetime または duration の値 t を "日付ベクトル" に、つまり、t の年、月、日、時、分、秒のコンポーネントを 6 要素で表す数値ベクトルに変換します。

tm 要素をもつ datetime 配列または duration 配列である場合、datevec は、各行が t の 1 つの値に対応する m 行 6 列の行列を返します。

  • tdatetime 配列である場合、その値は時点を表す。DateVector の各行は特定の日付と時刻を表す。

  • tduration 配列である場合、その値は経過時間を表す。DateVector の各行は、固定長の時間単位で測定された時間の長さを表す。このため、DateVector の 2 列目の値 (月数を表す) は常にゼロです。詳細については、制限を参照してください。

DateVector = datevec(DateString) は、日付と時刻を表すテキストを日付ベクトルに変換します。テキストで使用されている形式が既知の場合は、形式を formatIn として指定します。formatIn なしの構文は、それを含む構文に比べて大幅に遅くなります。

DateVector = datevec(DateString,formatIn)formatIn を使用して、DateString で表された日付と時刻を解釈します。

DateVector = datevec(DateString,PivotYear)PivotYear を使用して、年を 2 文字で指定するテキストを解釈します。テキストで使用されている形式が既知の場合は、形式を formatIn として指定します。formatIn なしの構文は、それを含む構文に比べて大幅に遅くなります。

DateVector = datevec(DateString,formatIn,PivotYear)formatIn を使用して DateString で表された日付と時刻を解釈し、PivotYear を使用して年を 2 文字で指定するテキストを解釈します。formatIn および PivotYear は、いずれの順序でも指定できます。

[Y,M,D,H,MN,S] = datevec(___) は、日付ベクトルの成分を個々の変数 YMDHMNS (年、月、日、時、分、秒) として返します。関数 datevec、は秒 (S) 出力の小数部分としてミリ秒を返します。

すべて折りたたむ

format short g

t = [datetime('now');datetime('tomorrow')]
t = 2x1 datetime
   25-Jan-2024 22:07:56
   26-Jan-2024 00:00:00

DateVector = datevec(t)
DateVector = 2×6

         2024            1           25           22            7       56.118
         2024            1           26            0            0            0

DateString = '28.03.2005';
formatIn = 'dd.mm.yyyy';
datevec(DateString,formatIn)
ans = 1×6

        2005           3          28           0           0           0

datevec は、形式 'dd.mm.yyyy' で日付を表すテキストの日付ベクトルを返します。

複数の日付を cell 配列内の文字ベクトルとして渡します。すべての入力日付に同じ形式を使用しなければなりません。

DateString = {'09/16/2007';'05/14/1996';'11/29/2010'};
formatIn = 'mm/dd/yyyy';
datevec(DateString,formatIn)
ans = 3×6

        2007           9          16           0           0           0
        1996           5          14           0           0           0
        2010          11          29           0           0           0

datevec('11:21:02.647','HH:MM:SS.FFF')
ans = 1×6
103 ×

    2.0240    0.0010    0.0010    0.0110    0.0210    0.0026

出力日付ベクトルでは、ミリ秒は、秒フィールドの小数部分です。テキスト '11:21:02.647' には、完全な日付ベクトルに変換するための十分な情報が含まれていません。既定の設定では、日付は 1、月は 1 月、年は現在の年です。

既定のピボット年を使用して、日付を表すテキストを日付ベクトルに変換します。

DateString = '12-jun-17';
formatIn = 'dd-mmm-yy';
DateVector = datevec(DateString,formatIn)
DateVector = 1×6

        2017           6          12           0           0           0

ピボット年を 1800 に指定して、同じ日付を日付ベクトルに変換します。

DateVector = datevec(DateString,formatIn,1800)
DateVector = 1×6

        1817           6          12           0           0           0

日付を表すテキストを日付ベクトルに変換して、日付ベクトルの成分を返します。

[y, m, d, h, mn, s] = datevec('01.02.12','dd.mm.yy')
y = 2012
m = 2
d = 1
h = 0
mn = 0
s = 0

入力引数

すべて折りたたむ

日付と時刻。datetime 値または duration 値の配列として指定します。

データ型: datetime | duration | calendarDuration

日付と時刻を表すテキスト。ある時点を表すテキストが各行に含まれる文字配列、文字ベクトルの cell ベクトル、または string ベクトルとして指定します。文字配列のすべての行、あるいは cell ベクトルまたは string ベクトルのすべての要素は同じ形式でなければなりません。

例: '24-Oct-2003 12:45:07'

例: ['19-Sep-2013';'20-Sep-2013';'21-Sep-2013']

例: {'15-Oct-2010' '20-Nov-2012'}

テキストで使用されている形式がわかっている場合は、formatIn も指定しなければなりません。formatIn を指定しない場合、DateString は、次の形式のいずれかでなければなりません。

日付と時刻を表すテキストの形式

'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

メモ

日付と時刻の形式を示すシンボリック識別子は、datetime 配列の表示形式を示すシンボリック識別子とは異なります。

一部の形式には、日付と時刻のテキスト表現を変換するために十分な情報が含まれていないことがあります。そのような場合、既定で、時、分、秒は 0、日付は 1、月は 1 月、年は現在の年になります。datevec および datenum は、2 文字の年 (たとえば '79') を、現在の年を中心として 100 年の範囲に入るものと見なします。

formatIn を指定しない場合、以下の点に注意してください。

  • 月を 2 桁 (mm) で指定する形式の場合、月の値が 12 を超えてはならない。

  • ただし、'mm/dd/yy' の形式では、テキストの 1 番目のエントリが 12 を超え、2 番目のエントリが 12 以下の場合、datevec は、そのテキストを 'yy/mm/dd' 形式であると見なします。

日付と時刻を表す入力テキストの形式。シンボリック識別子の文字ベクトルまたは string スカラーとして指定します。

例: 'dddd, mmm dd, yyyy'

次の表に、文字ベクトル formatIn の作成に使用できるシンボリック識別子を示します。フィールドを区切るためのハイフン、スペース、コロンなどを含めることができます。

メモ

日付と時刻の形式を記述するシンボリック識別子は、datetime 配列の表示形式を記述するシンボリック識別子とは異なります。

シンボリック識別子

説明

yyyy

4 桁表記の年

1990, 2002

yy

2 桁表記の年

90, 02

QQ

文字 Q と 1 桁で表記する四半期

Q1

mmmm

フル ネームで表記する月

March, December

mmm

最初の 3 文字で表記する月

Mar, Dec

mm

2 桁表記の月

03, 12

m

大文字の頭文字で表記する月

M, D

dddd

フル ネームで表記する曜日

Monday, Tuesday

ddd

最初の 3 文字で表記する曜日

Mon, Tue

dd

2 桁表記の日

05, 20

d

大文字の頭文字で表記する曜日

M, T

HH

2 桁表記の時間
(シンボリック識別子 AM または PM が使用される場合は先頭の 0 なし)

05, 5 AM

MM

2 桁表記の分

12, 02

SS

2 桁表記の秒

07, 59

FFF

3 桁表記のミリ秒

057

AM or PM

時刻を表すテキストに挿入される AM または PM

3:45:02 PM

formatIn 値は次のガイドラインに従わなければなりません。

  • どのフィールドも複数回指定することはできません。たとえば、'yy-mmm-dd-m' は、2 つの月識別子を含むので使用できません。ただし、例外として、dd の 1 つのインスタンスは、他の日識別子の 1 つのインスタンスと組み合わせることができます。たとえば、'dddd mmm dd yyyy' は有効な入力です。

  • AM または PM を使用する場合は、HH フィールドも必要です。

  • datevec は、'QQ' を含む形式を受け入れません。

2 文字表記の年を含む 100 年の日付範囲の開始年を整数で指定します。ピボット年は、年が 2 文字で指定されている日付の解釈に使用されます。

formatIn に時刻が含まれる場合、現在の年月日の現在の時刻からピボット年が計算されます。それ以外の場合は、現在の年月日の午前 0 時から計算されます。

例: 2000

メモ

入力の日付形式で 4 文字の年が指定されている場合、末尾 2 文字は切り捨てられ、"最初" の 2 文字が年を指定します。たとえば、日付とピボット年が ('25122015','ddmmyyyy',2000) として指定されている場合、結果の日付は 25-12-2020 になります。25-12-2015 ではありません。

データ型: double

出力引数

すべて折りたたむ

日付ベクトル。m 行 6 列の行列として返されます。この行列の各行は 1 つの日付ベクトルに対応し、m は入力日付値または日付と時刻を表す文字ベクトルの総数です。

日付ベクトルの成分 (年、月、日、時、分、秒)。数値スカラーまたは数値ベクトルとして返されます。ミリ秒は、秒出力の小数部分です。datetime 配列 t の変換では、各成分は YearMonthDayHourMinuteSecond の各プロパティの値と等しくなります。たとえば、Y = t.Year のようになります。

制限

  • 最初の引数が datetime 配列、数値配列、または日付と時刻を表すテキストである場合、datevec は出力において、1 に満たない月の値をすべて 1 に設定します。1 より少ない日の値 D は、その前の月の最終日から |D| 差し引いた日の値に設定されます。ただし、0 ≤ DateNumber < 1 の場合、datevec(DateNumber) は、形式 [0 0 0 H MN S] の日付ベクトルを返します。ここで、HMNS は、それぞれ時、分、秒に対応します。

  • 最初の引数が duration 配列である場合、datevec の出力は時点を表すのではなく、固定長の時間単位で測定された時間の長さを表します。出力行列の各行が期間を年、月、日、時、分、秒の数として表し、その合計は、duration 入力の対応する要素で表される時間長の合計となります。

    ただし、月ごとに日数が異なるため、月を固定長の時間単位とすることはできません。したがって、月の数は常にゼロとなります。代わりに、datevec は期間を、合計がその期間となる年数 (それぞれの長さが 365.2425 日)、日数 (それぞれの長さが 86,400 秒)、時間数、分数、秒数として表します。もう 1 つの結果として、日数は 31 より大きくすることができます。

ヒント

  • ベクトル化された呼び出し構文を使用すると、大きな配列でパフォーマンスを大幅に改善できます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する