timeofday

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

Синтаксис

Описание

пример

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

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

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

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

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

Примеры

свернуть все

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

t = datetime('now') + hours(1:3)
t = 1x3 datetime
   23-Mar-2021 17:59:47   23-Mar-2021 18:59:47   23-Mar-2021 19:59:47

d = timeofday(t)
d = 1x3 duration
   17:59:47   18:59:47   19:59:47

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

whos d
  Name      Size            Bytes  Class       Attributes

  d         1x3                40  duration              

Рассчитать прошедшее время с полуночи на день с помощью сдвига Daylight Сохранения Time (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
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 учитывает сдвиг по времени на 02:00 или после этой даты.

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

Установите время суток в datetime массив согласно времени суток в другом datetime массив. Существует два способа установить время суток. Правильным является только второй метод в Сохранение Daylight сдвигов Time (DST).

Создайте datetime массив. Каждый элемент имеет разный временный компонент.

t1 = datetime(2015,3,7) + hours(1:4)
t1 = 1x4 datetime
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
   08-Mar-2015   08-Mar-2015   08-Mar-2015   08-Mar-2015

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

t2 = dateshift(t2,'start','day') + timeofday(t1)
t2 = 1x4 datetime
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
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
   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
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