How do I convert tall array duration time vector to HH:mm:ss for merging with tall array datetime vector ?
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Douglas Leaffer
il 21 Gen 2022
Commentato: Douglas Leaffer
il 20 Apr 2022
Need some help with this. I have a tall array date vector 'yyyy-MM-dd' of datetime format, and a tall array time vector 'HH:mm:ss.SSS' of duration format. How do I convert the duration vector to only HH:mm:ss (omitting the decimals) and then combine that with the date vector to get: 'yyyy-MM-dd HH:mm:ss' ?
0 Commenti
Risposta accettata
Chris
il 21 Gen 2022
dates = tall(repmat(datetime(date),3,1))
times = tall(repmat(duration(15,12,1,345,'Format','hh:mm:ss.SSS'),3,1))
times.Format = 'hh:mm:ss';
datetime([string(dates) + " " + string(times)])
9 Commenti
Chris
il 19 Apr 2022
Modificato: Chris
il 19 Apr 2022
Hello again, Douglas.
How about the following?
dates = datestr(theTable{:,1},'dd-mmm-yyyy');
durs = datestr(theTable{:,2},'HH:MM:SS');
merged = datetime(dates + " " + durs);
You could also shift the table around:
theTable.Var1 = merged;
theTable.Var2 = [];
Più risposte (1)
Walter Roberson
il 21 Gen 2022
perhaps
[h,m,s] = hms(DURATION_COLUMN);
DATETIME_COLUMN = TIME_COLUMN + duration(h,m,floor(s))
or perhaps
DATETIME_COLUMN = dateshift(TIME_COLUMN + DURATION_COLUMN, 'start', 'second')
if you do not have negative durations or negative datetimes, then adding first and then getting rid of the fractions of a second should give the same result.
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!