How do I convert tall array duration time vector to HH:mm:ss for merging with tall array datetime vector ?
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Douglas Leaffer
le 21 Jan 2022
Commenté : Douglas Leaffer
le 20 Avr 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 commentaires
Réponse acceptée
Chris
le 21 Jan 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 commentaires
Chris
le 19 Avr 2022
Modifié(e) : Chris
le 19 Avr 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 = [];
Plus de réponses (1)
Walter Roberson
le 21 Jan 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 commentaires
Voir également
Catégories
En savoir plus sur Dates and Time dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!