datetime without leading zero

18 visualizaciones (últimos 30 días)
Andy
Andy el 25 de Nov. de 2017
Comentada: Andy el 25 de Nov. de 2017
datetime('212704','InputFormat','Hmmss')
gives an error.
datetime('21:27:04','InputFormat','H:mm:ss')
does not.
This is a problem when importing time noted as hours without leading zero as in the first format using textscan. Using:
datetime('92704','InputFormat','HHmmss')
gives an error due to the lack of the leading zero. Any workaround for this?

Respuestas (2)

the cyclist
the cyclist el 25 de Nov. de 2017
Editada: the cyclist el 25 de Nov. de 2017
Can you sneak a formatting step between the import and the date function?
sprintf('%06.0f',92704)
ans =
'092704'
and
sprintf('%06.0f',212704)
ans =
'212704'
and then use the 2-digit hour format?
  1 comentario
Andy
Andy el 25 de Nov. de 2017
The application is a constant feed from a server read as textstrings in a given format. Ex:
textscan(msg,'%u %u %s %{Hmmss}D');
I guess best workaround as suggested is to import time as an integer and then do the format of the time field according to 5 or 6 digits. Just kinda weird and a bit annoying that Matlab can't handle this time notation by itself.

Iniciar sesión para comentar.


Greg
Greg el 25 de Nov. de 2017
Editada: Greg el 25 de Nov. de 2017
datetime(datenum('92704','HHMMSS'),'ConvertFrom','datenum')
Seems to work. Same concept as the cyclist's answer, except this method is likely easier to vectorize.

Categorías

Más información sobre Dates and Time en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by