Adding time to time string
Show older comments
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.
Accepted Answer
More Answers (2)
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)
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")
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!