Troubles with Matlab&Simulink input time format

8 Ansichten (letzte 30 Tage)
Bozhidar Stoyanov
Bozhidar Stoyanov am 24 Feb. 2017
Hi I have a time in format 123456.78 where 12 is hour, 34 minutes , 56 secounds and i need to get (12:34:56.78). I have tried to add ':' after every pair, but it didn't work. When i use datestr funcion, it give me back bad answer because datestr is working with day that means 1.5 = 12:00 can you help me please.

Akzeptierte Antwort

Bozhidar Stoyanov
Bozhidar Stoyanov am 25 Feb. 2017
Problem Solved :) M is matrix [x,1] where is the time in format 123456.78 (12:34:56.78) in every cell.
Date(1,12)=char(0);
pom=(M(1,1)*100);
if pom==0;
x=datestr(pom,'HH:MM:SS.FFF');
else
pom=num2str(pom);
x=cellstr(reshape(pom,2,[])');
x=transpose(x);
x=strjoin(x,{':',':','.'});
x=datestr(x,'HH:MM:SS.FFF');
end
Date(1,:)=x(1,:);

Weitere Antworten (1)

Easwar Kumar Yarrabikki
Easwar Kumar Yarrabikki am 24 Feb. 2017
Bearbeitet: Easwar Kumar Yarrabikki am 24 Feb. 2017
Hello This is how I deal with date and time in MATLAB,
Hope it will help you. it will give you date and time of that particular run.
you can change "_" to any symbol you want use, Either ":" or Some thing else .
format = 'yyyy_mm_dd_HH_MM_SS';
date_time = datestr(now, format)
  1 Kommentar
Bozhidar Stoyanov
Bozhidar Stoyanov am 24 Feb. 2017
Bearbeitet: Bozhidar Stoyanov am 24 Feb. 2017
datestr is working with days like i say. I think its possible to find a constant with which I would multiply the fractional number and then use this function
>> formatOut = 'HH:MM:SS:FFF';
>> date_now = datestr(123758.16, formatOut)
date_now =
03:50:24:000
>> but the time is (123758.16) 12:37:58.16

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Language Fundamentals finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by