ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

timeofday

datetime の深夜からの経過時間

構文

d = timeofday(t)

説明

d = timeofday(t) は、tdatetime の各値について深夜からの経過時間に等しい duration の配列を返します。出力引数 dt - dateshift(t,'start','day') の結果と等しく、そのサイズは t と同じです。

  • タイム ゾーンのない datetime 値については、d が次に等しくなります。

    e = hours(t.Hour) + minutes(t.Minute) + seconds(t.Second)

  • datetime 値の TimeZone プロパティが夏時間 (DST) の実施されないタイム ゾーンに設定されている場合、de に等しくなります。

  • datetime 値の TimeZone プロパティが DST を実施するタイム ゾーンに設定されている場合、DST シフトが発生した後の日の timeofday に DST シフトが適用されます。DST シフトが発生した後の日の時刻では、de の間にそのシフト分の差が生じます。

すべて折りたたむ

datetime 配列を作成します。各 datetime 値について深夜以降の経過時間を計算します。

t = datetime('now') + hours(1:3)
t = 1x3 datetime array
   02-Aug-2018 19:15:02   02-Aug-2018 20:15:02   02-Aug-2018 21:15:02

d = timeofday(t)
d = 1x3 duration array
   19:15:02   20:15:02   21:15:02

d のデータ型をリストします。関数 timeofdaydatetime 配列ではなく duration 配列を返します。

whos d
  Name      Size            Bytes  Class       Attributes

  d         1x3                40  duration              

夏時間 (DST) シフトが適用される日の深夜以降の経過時間を計算します。

datetime 配列を作成します。TimeZone プロパティを、DST が実施されるタイム ゾーンに設定します。日付を DST シフトが発生した日に設定します。

tz = 'America/New_York';
fmt = 'dd-MMM-yyyy HH:mm:ss z';
t = datetime(2015,3,8,'TimeZone',tz,'Format',fmt) + hours(1:4)
t = 1x4 datetime array
Columns 1 through 2

   08-Mar-2015 01:00:00 EST   08-Mar-2015 03:00:00 EDT

Columns 3 through 4

   08-Mar-2015 04:00:00 EDT   08-Mar-2015 05:00:00 EDT

経過時間を計算します。このタイム ゾーンでは DST シフトが 2015 年 3 月 8 日の午前 2 時に発生しました。timeofday では、この日の午前 2 時以降の時刻にシフトが適用されます。

d = timeofday(t)
d = 1x4 duration array
   01:00:00   02:00:00   03:00:00   04:00:00

別の datetime 配列内の時刻に基づいて、datetime 配列の時刻を設定します。時刻を設定する方法は 2 つあります。夏時間 (DST) シフトを正しく処理できるのは 2 番目の方法だけです。

datetime 配列を作成します。各要素に時刻の異なる時刻の成分を含めます。

t1 = datetime(2015,3,7) + hours(1:4)
t1 = 1x4 datetime array
Columns 1 through 3

   07-Mar-2015 01:00:00   07-Mar-2015 02:00:00   07-Mar-2015 03:00:00

Column 4

   07-Mar-2015 04:00:00

2 番目の datetime 配列を作成します。各要素に同じ日付と時刻の成分を含めます。

t2 = datetime(2015,3,[8 8 8 8])
t2 = 1x4 datetime array
   08-Mar-2015   08-Mar-2015   08-Mar-2015   08-Mar-2015

t1 の時刻に基づいて t2 の時刻を設定します。

t2 = dateshift(t2,'start','day') + timeofday(t1)
t2 = 1x4 datetime array
Columns 1 through 3

   08-Mar-2015 01:00:00   08-Mar-2015 02:00:00   08-Mar-2015 03:00:00

Column 4

   08-Mar-2015 04:00:00

datetime 配列を作成し、各要素の TimeZone プロパティを 'America/New_York' に設定します。

tz = 'America/New_York';
fmt = 'dd-MMM-yyyy HH:mm:ss z';
t3 = datetime(2015,3,8,'TimeZone',tz,'Format',fmt) + hours(1:4)
t3 = 1x4 datetime array
Columns 1 through 2

   08-Mar-2015 01:00:00 EST   08-Mar-2015 03:00:00 EDT

Columns 3 through 4

   08-Mar-2015 04:00:00 EDT   08-Mar-2015 05:00:00 EDT

深夜以降の経過時間を計算します。timeofday では、2015 年 3 月 8 日に発生した夏時間シフトが考慮されます。

d = timeofday(t3)
d = 1x4 duration array
   01:00:00   02:00:00   03:00:00   04:00:00

t1 の時刻に基づいて t4 の時刻を設定します。タイム ゾーンや日付に関係なく正しい時刻を設定するには、t1HourMinute および Second プロパティを使用します。

t4 = datetime(2015,3,[8 8 8 8],'TimeZone',tz,'Format',fmt);
t4.Hour = t1.Hour;
t4.Minute = t1.Minute;
t4.Second = t1.Second;
t4
t4 = 1x4 datetime array
Columns 1 through 2

   08-Mar-2015 01:00:00 EST   08-Mar-2015 03:00:00 EDT

Columns 3 through 4

   08-Mar-2015 03:00:00 EDT   08-Mar-2015 04:00:00 EDT

このタイム ゾーンでは DST シフトがその時刻に発生したため、東部標準時 2015 年 3 月 8 日午前 2 時という時刻は存在しません。結果の 2 番目の要素は時刻の成分が東部夏時間の午前 3 時になります。

入力引数

すべて折りたたむ

入力の日付と時刻。datetime 配列として指定します。

拡張機能

R2014b で導入