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)

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

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

Примеры

свернуть все

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

t = datetime('now') + hours(1:3)
t = 1x3 datetime
   17-Aug-2020 16:35:44   17-Aug-2020 17:35:44   17-Aug-2020 18:35:44

d = timeofday(t)
d = 1x3 duration
   16:35:44   17:35:44   18:35:44

Перечислите тип данных 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
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
   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
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минута, и 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 a.m. Восточное стандартное время не существовало 8 марта 2015, потому что сдвиг DST произошел затем. Второй элемент результата имеет компонент времени 3:00 a.m. Восточное поясное время.

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

свернуть все

Введите дату и время в виде datetime массив.

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

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

| | | | |

Введенный в R2014b