datevec

Преобразуйте дату и время в вектор из компонентов

Описание

пример

Примечание

В то время как можно представлять даты и времена как векторы даты, рекомендуется, чтобы вы использовали datetime значения, чтобы представлять моменты времени, и duration или calendarDuration значения, чтобы представлять прошедшие времена.

DateVector = datevec(t) преобразует datetime или duration значение t к вектору даты — то есть, числовой вектор, шесть элементов которого представляют год, месяц, день, час, минуту и вторые компоненты t.

Если t datetime или duration массив, имеющий m элементы, затем datevec возвращает m- 6 матриц, где каждая строка соответствует значению в t.

  • Если t datetime массив, затем его значения представляют моменты времени. Каждая строка DateVector представляет определенную дату и время.

  • Если t duration массив, затем его значения представляют прошедшее время. Каждая строка DateVector представляет отрезок времени, измеренный в единицах измерения времени фиксированной длины. Поэтому значения во втором столбце DateVector (представление номера месяцев), всегда нули. Для получения дополнительной информации смотрите Ограничения.

пример

DateVector = datevec(DateNumber) преобразует одно или несколько чисел даты, чтобы датировать векторы. datevec функция возвращает m- 6 матриц, содержащих m векторы даты, где m общее количество чисел даты в DateNumber.

DateVector = datevec(DateString) преобразует текст, представляющий даты и времена, чтобы датировать векторы. Если формат, используемый в тексте, известен, задайте формат как formatIn. Синтаксисы без formatIn значительно медленнее, чем синтаксисы, которые включают его.

пример

DateVector = datevec(DateString,formatIn) использование formatIn интерпретировать даты и времена, представленные DateString.

DateVector = datevec(DateString,PivotYear) использование PivotYear интерпретировать текст, который задает год как два символа. Если формат, используемый в тексте, известен, задайте формат как formatIn. Синтаксисы без formatIn значительно медленнее, чем синтаксисы, которые включают его.

пример

DateVector = datevec(DateString,formatIn,PivotYear) использование formatIn интерпретировать даты и времена, представленные DateString, и PivotYear интерпретировать текст, который задает год как два символа. Можно задать formatIn и PivotYear в любом порядке.

пример

[Y,M,D,H,MN,S] = datevec(___) возвращает компоненты вектора даты как отдельные переменные YMDHm, n , и S (год, месяц, день, час, минуты и секунды). datevec функция возвращает миллисекунды как дробную часть секунд (Sвывод .

Примеры

свернуть все

format short g

t = [datetime('now');datetime('tomorrow')]
t = 2x1 datetime
   17-Aug-2020 15:34:52
   18-Aug-2020 00:00:00

DateVector = datevec(t)
DateVector = 2×6

         2020            8           17           15           34       52.091
         2020            8           18            0            0            0

format short g

n = 733779.651;
datevec(n)
ans = 1×6

         2009            1            6           15           37         26.4

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

        2005           3          28           0           0           0

datevec возвращает вектор даты для текста, представляющего дату с форматом 'dd.mm.yyyy'.

Передайте несколько дат как векторы символов в массиве ячеек. Все входные даты должны использовать тот же формат.

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.0200    0.0010    0.0010    0.0110    0.0210    0.0026

В выходном векторе даты миллисекунды являются дробной частью поля секунд. Текст '11:21:02.647' не содержит достаточно информации, чтобы преобразовать в полный вектор даты. Дневное значение по умолчанию к 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

Последовательный номер даты в виде массива положительных чисел с двойной точностью.

Пример: 731878

Типы данных: double

Текст, представляющий даты и времена в виде символьного массива, где каждая строка содержит текст, представляющий один момент времени как вектор ячейки из векторов символов, или как вектор строки. Все строки символьного массива или все элементы вектора ячейки или вектора строки, должны иметь тот же формат.

Пример: '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, значение по умолчанию месяцев до января и значение по умолчанию лет к текущему году. datevec и datenum рассмотрите 2D символьные годы (например, '79') находиться в пределах 100-летней области значений, сосредоточенной около текущего года.

Когда вы не задаете formatIn, отметьте следующее:

  • Для форматов, которые задают месяц как две цифры (mm), значение месяца не должно быть больше 12.

  • Однако для формата 'mm/dd/yy', если первая запись в тексте больше 12, и вторая запись меньше чем или равна 12, то datevec полагает, что текст находится в 'yy/mm/dd' формат.

Формат входного текста, представляющего даты и времена в виде вектора символов или строкового скаляра символьных идентификаторов.

Пример: 'dddd, mmm dd, yyyy'

Следующая таблица показывает символьные идентификаторы, что можно использовать, чтобы создать formatIn символьный вектор. Можно включать символы, такие как дефис, пробел или двоеточие, чтобы разделить поля.

Примечание

Символьные идентификаторы, описывающие форматы даты и времени, отличаются от идентификаторов, которые описывают форматы отображения datetime массивы.

Символьный идентификатор

Описание

Пример

yyyy

Год полностью

1990, 2002

yy

Год в двух цифрах

90, 02

QQ

Год четверти с помощью буквы Q и одна цифра

Q1

mmmm

Месяц с помощью полного имени

March, December

mmm

Месяц с помощью сначала три буквы

Mar, Dec

mm

Месяц в двух цифрах

03, 12

m

Месяц с помощью использовал для своей выгоды первую букву

MD

dddd

День с помощью полного имени

Monday, Tuesday

ddd

День с помощью сначала три буквы

Mon, Tue

dd

День в двух цифрах

05, 20

d

День с помощью использовал для своей выгоды первую букву

MT

HH

Час в двух цифрах
(никакие начальные нули, когда символьный идентификатор AM или PM используется),

05, 5 AM

MM

Минута в двух цифрах

12, 02

SS

Второй в двух цифрах

07, 59

FFF

Миллисекунда в трех цифрах

057

AM or PM

AM или PM вставленный в текст, представляющий время

3:45:02 PM

formatIn значение должно следовать этим инструкциям:

  • Вы не можете задать поле несколько раз. Например, вы не можете использовать 'yy-mmm-dd-m' потому что это имеет двухмесячные идентификаторы. Одно исключение к этому - то, что можно объединить один экземпляр dd с одним экземпляром любого из на днях идентификаторов. Например, 'dddd mmm dd yyyy' допустимый вход.

  • Когда вы используете AM или PM, HH поле также требуется.

  • datevec не принимает форматы, которые включают 'QQ'

Запустите год 100-летнего диапазона дат, в котором 2D символьный год находится в виде целого числа. Используйте год центра, чтобы интерпретировать даты, которые задают год как два символа.

Если formatIn содержит время суток, год центра вычисляется с текущего времени текущего дня, месяца и года. В противном случае это вычисляется с полуночи текущего дня, месяца и года.

Пример: 2000

Примечание

Если входной формат даты задает год с четырьмя символами, то последние два символа являются усеченными, и первые два символа задают год. Например, если дата и год центра задана как ('25122015','ddmmyyyy',2000), затем получившейся датой является 25-12-2020, не 25-12-2015.

Типы данных: double

Выходные аргументы

свернуть все

Векторы даты, возвращенные как m- 6 матриц, где каждая строка соответствует одному вектору даты и m общее количество входных чисел даты или векторов символов, представляющих даты и времена.

Компоненты вектора даты (год, месяц, день, час, минута, и второй), возвращенный в виде чисел или числовых векторов. Миллисекунды являются дробной частью секунд выход. При преобразовании datetime массив t, эти компоненты равны значениям Yearмесяцденьчасминута, и Second свойства. Например, Y = t.Year.

Ограничения

  • Если первым входным параметром является datetime массив, числовой массив или текст, представляющий даты и времена, затем datevec устанавливает любые значения месяца от меньше чем 1 до 1 в выходе. Дневные значения, D, меньше чем 1 установлен в прошлый день предыдущего месяца минус |D|. Однако, если 0 ≤ DateNumber <1, затем datevec(DateNumber) возвращает вектор даты из формы [0 0 0 H MN S], где Hm, n , и S часы, минуты и секунды, соответственно.

  • Если первым входным параметром является duration массив, затем выход datevec не представляет моменты времени, а скорее отрезки времени, измеренные в единицах измерения времени фиксированной длины. Каждая строка выходной матрицы представляет длительность как номер лет, месяцев, дней, часов, минут и секунд, сумма которых является общим отрезком времени, представленным соответствующим элементом входа duration массив.

    Однако месяц не может быть единицей измерения времени фиксированной длины, потому что различные месяцы имеют различные числа дней. Поэтому номер месяцев всегда является нулем. Вместо этого datevec представляет длительность как номер лет (каждый 365,2425 дней длиной), номер дней (каждый 86 400 секунд длиной) и номер часов, минут и секунд, сумма которых является той длительностью. Как другое последствие, номер дней может быть больше 31.

Советы

  • Векторизованный синтаксис вызова может предложить значительное повышение производительности для больших массивов.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Представлено до R2006a