datevec

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

Описание

пример

Примечание

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

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

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

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

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

пример

DateVector = datevec(DateNumber) преобразует одно или несколько чисел дат в векторы дат. datevec функция возвращает m-by-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(___) возвращает компоненты вектора дат как отдельные переменные Y, M, D, H, MN, и S (год, месяц, день, час, минуты и секунды). datevec функция возвращает миллисекунды как дробную часть секунды (S) выход.

Примеры

свернуть все

format short g

t = [datetime('now');datetime('tomorrow')]
t = 2x1 datetime
   23-Mar-2021 16:57:22
   24-Mar-2021 00:00:00

DateVector = datevec(t)
DateVector = 2×6

         2021            3           23           16           57       22.332
         2021            3           24            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.0210    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 учитывайте двухсимвольные годы (например '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

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

M, D

dddd

День с использованием полного имени

Monday, Tuesday

ddd

День с использованием первых трех букв

Mon, Tue

dd

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

05, 20

d

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

M, T

HH

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

05, 5 AM

MM

Минута двумя цифрами

12, 02

SS

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

07, 59

FFF

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

057

AM or PM

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

3:45:02 PM

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

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

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

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

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

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

Пример: 2000

Примечание

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

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

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

свернуть все

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

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

Ограничения

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

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

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

Совет

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

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

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

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