Как конвертировать InputFormat конструктора даты и времени в Matlab? - PullRequest
0 голосов
/ 06 мая 2018

Как конвертировать InputFormat конструктора даты и времени в Matlab?

datestr не работает:

>> startTime = datetime('2014/06/01-00:00', 'InputFormat', 'yyyy/MM/dd-HH:mm')
startTime = 
  datetime
   01-Jun-2014 00:00:00
>> datestr(startTime, 'yyyy/MM/dd-HH:mm')
ans =
2014/00/01-00:06

Как видите, месяцы превращаются в минуты.

Как побороть?

UPDATE

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

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Установите 'Format' вашего datetime объекта на желаемый выход и используйте char():

tfmt = 'yyyy/MM/dd-HH:mm';
startTime = datetime('2014/06/01-00:00', 'InputFormat', tfmt, 'Format', tfmt);

char(startTime)

Что возвращает:

>> SOcode

ans =

    '2014/06/01-00:00'

Обратите внимание, что это задокументированное ограничение datestr

Примечание

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

0 голосов
/ 06 мая 2018

Изменение порядка форматирования (очень небольшое изменение) datestr сработало:

startTime = datetime('2014/06/01-00:00', 'InputFormat', 'yyyy/MM/dd-HH:mm')
startTime = 

   01-Jun-2014 00:00:00
datestr(startTime, 'yyyy/mm/dd-HH:MM')
ans =

2014/06/01-00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...