exponenta event banner

datenum

Преобразовать дату и время в серийный номер

Описание

пример

Примечание

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

DateNumber = datenum(t) преобразует datetime или duration значения во входном массиве t до серийных номеров.

Порядковый номер даты представляет целое и дробное количество дней от фиксированной, предварительно установленной даты (0, 0000 января) в пролептическом календаре ISO.

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

пример

DateNumber = datenum(DateString,formatIn) использование formatIn для интерпретации дат и времени, представленных DateString.

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

пример

DateNumber = datenum(DateString,formatIn,PivotYear) использование formatIn для интерпретации дат и времени, представленных DateString, и PivotYear для интерпретации текста, указывающего год как два символа. Можно указать formatIn и PivotYear в любом порядке.

пример

DateNumber = datenum(DateVector) преобразует векторы дат в серийные номера дат и возвращает вектор столбца m номера дат, где m - общее число векторов даты в DateVector.

пример

DateNumber = datenum(Y,M,D) возвращает порядковые номера дат для соответствующих элементов Y, M, и D (год, месяц, день) массивы. Массивы должны иметь одинаковый размер (или любой может быть скаляром). Можно также указать входные аргументы в качестве вектора даты, [Y,M,D].

DateNumber = datenum(Y,M,D,H,MN,S) дополнительно возвращает порядковые номера дат для соответствующих элементов H, MN, и S (час, минута и секунда). Массивы должны иметь одинаковый размер (или любой может быть скаляром). Можно также указать входные аргументы в качестве вектора даты, [Y,M,D,H,MN,S].

Примеры

свернуть все

format long 

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

DateNumber = datenum(t)
DateNumber = 2×1
105 ×

   7.382387064508711
   7.382390000000000

DateString = '19-May-2001';
formatIn = 'dd-mmm-yyyy';
datenum(DateString,formatIn)
ans = 730990

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

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

DateString = {'09/16/2007';'05/14/1996';'11/29/2010'};
formatIn = 'mm/dd/yyyy';
datenum(DateString,formatIn)
ans = 3×1

      733301
      729159
      734471

Преобразование текста, представляющего дату, в серийный номер даты с использованием сводного года по умолчанию.

n = datenum('12-jun-17','dd-mmm-yy')
n = 736858

Текст, представляющий этот номер даты: '12-Jun-2017'.

Преобразуйте тот же текст в порядковый номер с использованием 1400 в качестве сводного года.

n = datenum('12-jun-17','dd-mmm-yy',1400)
n = 517712

Текст, представляющий этот номер даты: '12-Jun-1417'.

datenum([2009,4,2,11,7,18])
ans = 7.3387e+05

Преобразование даты, указанной значениями года, месяца и дня, в порядковый номер даты.

n = datenum(2001,12,19)
n = 731204

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

свернуть все

Даты и время, указанные как массив datetime или duration значения. datenum функция не учитывает информацию о часовом поясе в t и не корректирует datetime значения, возникающие во время перехода на летнее время. То есть datenum обрабатывает TimeZone имущество datetime массивы пусты и преобразует оставшуюся информацию о дате и времени в серийный номер даты.

Типы данных: datetime | duration

Векторы даты, указанные как m-к-6 или m-by-3 матрица, содержащая m полные или частичные векторы даты соответственно. Полный вектор даты содержит шесть элементов, указывающих год, месяц, день, час, минуту и секунду в указанном порядке. Частичный вектор даты имеет три элемента, указывающих год, месяц и день в указанном порядке. Каждый элемент DateVector должно быть положительным или отрицательным целым числом, за исключением элемента seconds, который может быть дробным. Если элемент выходит за пределы обычного диапазона, datenum корректирует как этот элемент вектора даты, так и предыдущий элемент. Например, если элемент minutes имеет значение 70, то datenum корректирует элемент часов по 1 и устанавливает для элемента minutes значение 10. Если элемент minutes -15, то datevec уменьшает элемент часов на 1 и устанавливает для элемента minutes значение 45. Значения месяца являются исключением. datenum функция устанавливает значения месяца меньше 1 кому 1.

Пример: [2003,10,24,12,45,07]

Типы данных: 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, то datenum считает, что текст находится в '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

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

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

  • При использовании AM или PM, HH поле также обязательно.

  • Вы можете использовать только QQ один или со спецификатором года.

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

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

Пример: 2000

Примечание

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

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

Массивы года, месяца и дня, указанные как числовые массивы. Эти массивы должны иметь одинаковый размер или скаляр. Значения в Y,M,D должны быть целочисленными значениями.

Если Y,M,D все скаляры или все векторы столбцов, можно указать входные аргументы как вектор даты, [Y,M,D].

Пример: 2003,10,24

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

Год, месяц, день, час, минута и вторые массивы, указанные как числовые массивы. Эти массивы должны иметь одинаковый размер или скаляр. datenum не принимает миллисекунды как отдельный вход, а как дробную часть второго входа, S. Значения в Y,M,D,H,MN должны быть целочисленными значениями.

Если Y,M,D,H,MN,S все скаляры или все векторы столбцов, можно указать входные аргументы как вектор даты, [Y,M,D,H,MN,S].

Пример: 2003,10,24,12,45,07.451

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

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

свернуть все

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

Совет

  • Чтобы создать произвольно сформированный выход, используйте datenum(Y,M,D) и datenum(Y,M,D,H,MN,S) синтаксисы. datenum(DateVector) синтаксис создает только вектор столбца номеров дат.

    datenum(2013,[1 3; 2 4],ones(2,2))
    ans =
    
          735235      735294
          735266      735325

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

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