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?

답변 (2개)

the cyclist
the cyclist 2017년 11월 25일
편집: the cyclist 2017년 11월 25일

1 개 추천

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

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.

댓글을 달려면 로그인하십시오.

Greg
Greg 2017년 11월 25일
편집: Greg 2017년 11월 25일

1 개 추천

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

카테고리

도움말 센터File Exchange에서 Dates and Time에 대해 자세히 알아보기

질문:

2017년 11월 25일

댓글:

2017년 11월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by