datestr

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

Функция datestr создает символьный массив, который отображает один или несколько моментов времени. Однако лучший способ представлять моменты времени при помощи типа данных datetime.

Синтаксис

DateString = datestr(t)
DateString = datestr(DateVector)
DateString = datestr(DateNumber)
DateString = datestr(___,formatOut)
DateString = datestr(DateStringIn)
DateString = datestr(DateStringIn,formatOut,PivotYear)
DateString = datestr(___,'local')

Описание

пример

DateString = datestr(t) преобразовывает значения datetime во входном массиве t к тексту, представляющему даты и времена. Однако также можно представлять значения datetime как текст с помощью char, cellstr или функций string.

Функция datestr возвращает символьный массив со строками m, где m является общим количеством значений datetime в t. По умолчанию datestr возвращает текст в формате, дневной год месяца hour:minute:second., Если hour:minute:second является 00:00:00, то возвращенный текст имеет формат, дневной год месяца.

пример

DateString = datestr(DateVector) преобразовывает векторы даты в текст, представляющий даты и времена. Функция datestr возвращает символьный массив со строками m, где m является общим количеством векторов даты в DateVector.

пример

DateString = datestr(DateNumber) преобразовывает последовательные числа даты в текст, представляющий даты и времена. Функция datestr возвращает символьный массив со строками m, где m является общим количеством чисел даты в DateNumber.

пример

DateString = datestr(___,formatOut) задает формат синтезируемого текста с помощью formatOut. Можно использовать formatOut с любым из входных параметров в предыдущих синтаксисах.

DateString = datestr(DateStringIn) преобразовывает DateStringIn в текст в формате, дневной год месяца hour:minute:second. Все даты и времена, представленные в DateStringIn, должен иметь тот же формат.

пример

DateString = datestr(DateStringIn,formatOut,PivotYear) преобразовывает DateStringIn в DateString в формате, заданном formatOut и использованием дополнительного PivotYear, чтобы интерпретировать даты, которые задают год как два символа.

пример

DateString = datestr(___,'local') возвращает дату на языке текущей локали. Этот язык является языком, который вы выбираете посредством операционной системы своего компьютера. Если вы упускаете 'local' из списка аргументов, datestr возвращает текст на языке по умолчанию, который является английским языком США. Используйте 'local' с любым из предыдущих синтаксисов. Аргумент 'local' должен быть последним в последовательности аргумента.

Примеры

свернуть все

t = [datetime('now');datetime('tomorrow')]
t = 2x1 datetime array
   21-Aug-2018 18:22:22
   22-Aug-2018 00:00:00

DateString = datestr(t)
DateString = 2x20 char array
    '21-Aug-2018 18:22:22'
    '22-Aug-2018 00:00:00'

datestr возвращает текст, представляющий даты и времена в формате, дневной год месяца hour:minute:second.

DateVector = [2009,4,2,11,7,18];

datestr(DateVector)
ans = 
'02-Apr-2009 11:07:18'

datestr возвращает текст, представляющий дату и время в формате по умолчанию.

Отформатируйте текущую дату в формате mm/dd/yy.

Можно задать этот формат с помощью символьных идентификаторов.

formatOut = 'mm/dd/yy';
datestr(now,formatOut)
ans = 
'08/21/18'

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

formatOut = 2;
datestr(now,formatOut)
ans = 
'08/21/18'

Можно переформатировать дату и время, и также показать миллисекунды.

dt = datestr(now,'mmmm dd, yyyy HH:MM:SS.FFF AM')
dt = 
'August 21, 2018  6:21:38.360 PM'

Преобразуйте 12-часовое 5:32 времени p. m. к его 24-часовому эквиваленту.

datestr('05:32 PM','HH:MM')
ans = 
'17:32'

Преобразуйте 24-часовое 5:32 времени в его 12-часовой эквивалент.

datestr('05:32','HH:MM PM')
ans = 
' 5:32 AM'

Использование AM или PM в синтезируемом тексте formatOut не влияет, какие символы на самом деле становятся частью текста; они только определяют, включать ли символы. MATLAB® выбирает AM или PM на основе вводимого времени.

Вызовите datenum в datestr, чтобы задать формат входного текста, представляющего дату.

formatOut = 'dd mmm yyyy';
datestr(datenum('16-04-55','dd-mm-yy',1900),formatOut)
ans = 
'16 Apr 1955'

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

Все входные даты должны использовать тот же формат. Например, следующая команда передает три даты что все использование формат mm/dd/yyyy.

datestr(datenum({'09/16/2007';'05/14/1996';'11/29/2010'}, ...
    'mm/dd/yyyy'))
ans = 3x11 char array
    '16-Sep-2007'
    '14-May-1996'
    '29-Nov-2010'

datestr возвращает символьный массив конвертированных дат в формате, дневной год месяца.

Вызовите datenum в datestr, чтобы возвратить ожидаемое значение, потому что дата ниже использует значение вне своей нормальной области значений (month=13).

datestr(datenum('13/24/88','mm/dd/yy'))
ans = 
'24-Jan-1989'

Измените год центра, чтобы изменить область значений года.

Используйте год центра 1 900.

DateStringIn = '4/16/55';
formatOut = 1;
PivotYear = 1900;
datestr(DateStringIn,formatOut,PivotYear)
ans = 
'16-Apr-1955'

Для той же даты используйте год центра 2 000.

PivotYear = 2000;
datestr(DateStringIn,formatOut,PivotYear)
ans = 
'16-Apr-2055'

Преобразуйте номер даты в текст на языке текущей локали.

Используйте аргумент 'local' во французской локали.

DateNumber = 725935;
formatOut = 'mmmm-dd-yyyy';
str = datestr(DateNumber,formatOut,'local')
str =
Juillet-17-1987

Можно выполнить тот же вызов, не задавая 'local'.

str = datestr(DateNumber,formatOut)
str =
July-17-1987

В этом случае, выходные значения по умолчанию на английский язык.

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

свернуть все

Даты и времена, заданные как массив datetime.

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

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

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

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

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

Пример: 731878

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

Формат выходных дат и времен представления, заданных как вектор символа или скаляр строки символьных идентификаторов или целого числа, которое соответствует предопределенному формату. Если вы не задаете formatOut, то datestr возвращает текст в формате по умолчанию dd-mmm-yyyy HH:MM:SS (дневной год месяца hour:minute:second). По умолчанию, если HH:MM:SS = 00:00:00 затем возвращенный текст имеет формат dd-mmm-yyyy.

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

Примечание

Символьные идентификаторы, описывающие форматы даты и времени, отличаются от идентификаторов, которые описывают форматы отображения массивов 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

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

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

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

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

Эта таблица приводит предопределенные форматы даты, которые можно использовать с datestr.

Числовой идентификатор

Формат даты и времени

Пример

-1 (значение по умолчанию)

'dd-mmm-yyyy HH:MM:SS' или 'dd-mmm-yyyy', если 'HH:MM:SS'= 00:00:00

01-Mar-2000 15:45:17 или 01-Mar-2000

0

'dd-mmm-yyyy HH:MM:SS'

01-Mar-2000 15:45:17

1

'dd-mmm-yyyy'

01-Mar-2000

2

'mm/dd/yy'

03/01/00

3

'mmm'

Mar

4

M

M

5

'mm'

03

6

'mm/dd'

03/01

7

'dd'

01

8

'ddd'

Wed

9

D

W

10

'yyyy'

2000

11

'yy'

00

12

'mmmyy'

Mar00

13

'HH:MM:SS'

15:45:17

14

'HH:MM:SS PM'

3:45:17 PM

15

'HH:MM'

15:45

16

'HH:MM PM'

3:45 PM

17

'QQ-YY'

Q1-01

18

'QQ'

Q1

19

'dd/mm'

01/03

20

'dd/mm/yy'

01/03/00

21

'mmm.dd,yyyy HH:MM:SS'

Mar.01,2000 15:45:17

22

'mmm.dd,yyyy'

Mar.01,2000

23

'mm/dd/yyyy'

03/01/2000

24

'dd/mm/yyyy'

01/03/2000

25

'yy/mm/dd'

00/03/01

26

yyyymmdd

2000/03/01

27

'QQ-YYYY'

Q1-2001

28

'mmmyyyy'

Mar2000

29

yyyymmdd
(ISO 8601)

2000-03-01

30

'yyyymmddTHHMMSS'
(ISO 8601)

20000301T154517

31

'yyyy-mm-dd HH:MM:SS'

2000-03-01 15:45:17

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

datestr полагает, что двух-символьные годы (например, '79') находятся в пределах 100-летней области значений, центрируемой около текущего года.

Весь текст, представляющий даты и времена, должен иметь тот же формат даты, и они должны быть в одном из следующих форматов даты.

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

Пример

'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

Примечание

При преобразовании от одного формата даты и времени до другого сначала передайте текст функции datenum, так, чтобы можно было задать формат входных параметров. Этот подход гарантирует, что формат входных дат и времен правильно интерпретирован. Например, смотрите Строку Преобразования даты от Пользовательского Формата.

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

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

Пример: 2000

Примечание

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

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

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

свернуть все

Текст, представляющий даты и времена, возвращенные как символьный массив со строками m, где m является общим количеством входных дат и времен. Выходным форматом по умолчанию является dd-mmm-yyyy HH:MM:SS (дневной год месяца hour:minute:second), если часы, минуты и секунды не являются всем 0, в этом случае, HH:MM:SS подавлен.

Советы

  • Чтобы преобразовать текст не в предопределенном формате даты MATLAB®, сначала преобразуйте текст в номер даты, с помощью или datenum или функций datevec.

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

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

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