datenum

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

Функция datenum создает числовой массив, который представляет каждый момент времени как номер дней с января 0, 0000. Числовые значения также могут представлять прошедшее время в модулях дней. Однако лучший способ представлять моменты времени при помощи типа данных datetime. Лучший способ представлять прошедшее время при помощи типов данных calendarDuration или duration.

Синтаксис

DateNumber = datenum(t)
DateNumber = datenum(DateString)
DateNumber = datenum(DateString,formatIn)
DateNumber = datenum(DateString,PivotYear)
DateNumber = datenum(DateString,formatIn,PivotYear)
DateNumber = datenum(DateVector)
DateNumber = datenum(Y,M,D)
DateNumber = datenum(Y,M,D,H,MN,S)

Описание

пример

DateNumber = datenum(t) преобразовывает datetime или значения длительности во входном массиве 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 array
   21-Aug-2018 18:21:23
   22-Aug-2018 00:00:00

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

   7.372937648601749
   7.372940000000000

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'.

Преобразуйте тот же текст в последовательный номер даты с помощью 1 400 как год центра.

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 или значений длительности. Функция datenum не составляет информацию о часовом поясе в t и не настраивает значения datetime, которые происходят в течение Летнего времени. Таким образом, datenum обрабатывает свойство TimeZone массивов datetime как пустое и преобразовывает остающуюся информацию о дате и времени в последовательный номер даты.

Типы данных: datetime | длительность

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

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

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

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

Пример: '24 октября 2003 12:45:07'

Пример: ['19 сентября 2013'; '20 сентября 2013'; '21 сентября 2013']

Пример: {'15 октября 2010' '20 ноября 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

yyyymmdd

2000-03-01

yyyymmdd

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 рассматривают двух-символьные годы (e. g., '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,H,MN,S) и datenum(Y,M,D). Синтаксис datenum(DateVector) создает только вектор - столбец чисел даты.

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

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

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

Была ли эта тема полезной?