Adding time to time string
24 views (last 30 days)
Show older comments
Arcot Manjunath Shreepal
on 5 Jul 2022
Answered: Eric Sofen
on 5 Jul 2022
I am dealing with two strings, one for date and the other for time. The date string is in the format 'yyyy/MM/dd' and time is in the format 'HH:mm:ss'. I need to perform two tasks here:
- I need to merge both the strings to the format 'yyyy-MM-dd HH:mm:ss'.
- I have a 60x1 list that contains numbers(which are seconds). To the merged output I need to create a loop to add the seconds and create a new list with all the 60 updated times.
I hope I made sense. Kindly help me with this problem and let me know if you need any further clarification.
0 Comments
Accepted Answer
Garmit Pant
on 5 Jul 2022
Hello Arcot
You can use the following code snippet as an example and adapt it to your own needs:
DateString = '2014/05/26'; %Date
timeString = '21:24:05'; %Time
% Convert date to a recognisable format
newDateString = strrep(DateString,'/','-');
%Join the date and time
joinInp = [newDateString ' ' timeString];
% Create the datetime object in the required format
t = datetime(joinInp,'InputFormat','yyyy-MM-dd HH:mm:ss')
%Add 5 seconds to the created datetime object
tnew = t + seconds(5)
More Answers (2)
Karim
on 5 Jul 2022
Note that it would be much easier to answer if you would have added exmaple data, anyhow you can use the following approach:
% random dates
DateStrings = ["2022-02-10","2021-04-20","2020-06-30"];
dates = datetime(DateStrings,'Format','yyyy-MM-dd')';
% random times
TimeStrings = ["04:21:30","07:19:21","13:51:33"];
times = datetime(TimeStrings,'Format','HH:mm:SS')';
% format both columns to yyyy-MM-dd HH:mm:SS for proper merging
dates = datetime(dates,'Format','yyyy-MM-dd HH:mm:SS');
times = datetime(times,'Format','yyyy-MM-dd HH:mm:SS');
% merge the dates and times
FullDataTime = dates+timeofday(times)
0 Comments
Eric Sofen
on 5 Jul 2022
Here's another slightly different approach. There's no need to replace "/" with "-" for datetime to parse it. Duration can parse "timer" formats, then you can just add together the datetime and duration without needing to use timeofday.
DateStrings = ["2022/02/10","2021/04/20","2020/06/30"];
TimeStrings = ["04:21:30","07:19:21","13:51:33"];
d = datetime(DateStrings,'InputFormat','yyyy/MM/dd','Format', 'yyyy-MM-dd HH:mm:ss') + duration(TimeStrings,"InputFormat","hh:mm:ss")
0 Comments
See Also
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!