datetime without leading zero

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?

Réponses (2)

the cyclist
the cyclist le 25 Nov 2017
Modifié(e) : the cyclist le 25 Nov 2017

1 vote

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 commentaire

Andy
Andy le 25 Nov 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.

Connectez-vous pour commenter.

Greg
Greg le 25 Nov 2017
Modifié(e) : Greg le 25 Nov 2017

1 vote

datetime(datenum('92704','HHMMSS'),'ConvertFrom','datenum')
Seems to work. Same concept as the cyclist's answer, except this method is likely easier to vectorize.

Catégories

Question posée :

le 25 Nov 2017

Commenté :

le 25 Nov 2017

Community Treasure Hunt

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

Start Hunting!

Translated by