timeofday

Прошедшее время с полуночи для datetimes

Синтаксис

d = timeofday(t)

Описание

пример

d = timeofday(t) возвращает массив длительности, равной прошедшему времени с полуночи для каждого из значений datetime в t. Выходной аргумент, d, равен результату t - dateshift(t,'start','day') и одного размера как t.

  • Если у вас есть значения datetime без часового пояса, то d также равен

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

  • Если значение datetime имеет свой набор свойств TimeZone к часовому поясу, который не наблюдает Летнее время (DST), то d равен e.

  • Если значение datetime имеет свой набор свойств TimeZone к часовому поясу, который наблюдает DST, то timeofday составляет сдвиг DST в дни, когда сдвиг происходит. В те дни в течение многих времен после того, как происходит сдвиг DST, d отличается от e суммой сдвига.

Примеры

свернуть все

Создайте массив datetime. Вычислите прошедшее время с полуночи для каждого значения datetime.

t = datetime('now') + hours(1:3)
t = 1x3 datetime array
   21-Feb-2019 21:22:29   21-Feb-2019 22:22:29   21-Feb-2019 23:22:29

d = timeofday(t)
d = 1x3 duration array
   21:22:29   22:22:29   23:22:29

Перечислите тип данных d. Функция timeofday возвращает массив duration, не массив datetime.

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 произошел в 02:00 8 марта 2015 в этом часовом поясе. timeofday составляет сдвиг в течение многих времен в или после 2:00 в эту дату.

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

Установите время суток в массиве datetime согласно времени суток в другом массиве datetime. Существует два способа установить время суток. Только второй метод правилен через сдвиги Летнего времени (DST).

Создайте массив 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

Создайте второй массив 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

Установите время суток в t2 согласно времени суток в t1.

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 составляет сдвиг DST, который произошел 8 марта 2015.

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

Установите время суток в t4 согласно времени суток в t1. Чтобы установить время суток правильно независимо от часового пояса или день года, используйте Hour, Minute и свойства Second t1.

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

В этом часовом поясе 2:00 по Восточному стандартному времени не существовало 8 марта 2015, потому что сдвиг DST произошел затем. Второй элемент результата имеет компонент времени 3:00 по восточному поясному времени.

Входные параметры

свернуть все

Введите дату и время, заданную как массив datetime.

Расширенные возможности

Смотрите также

| | | | |

Введенный в R2014b