Adding time to time string
18 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Arcot Manjunath Shreepal
il 5 Lug 2022
Risposto: Eric Sofen
il 5 Lug 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 Commenti
Risposta accettata
Garmit Pant
il 5 Lug 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)
Più risposte (2)
Karim
il 5 Lug 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 Commenti
Eric Sofen
il 5 Lug 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 Commenti
Vedere anche
Categorie
Scopri di più su Dates and Time in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!