How do I convert tall array duration time vector to HH:mm:ss for merging with tall array datetime vector ?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Douglas Leaffer
am 21 Jan. 2022
Kommentiert: Douglas Leaffer
am 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 Kommentare
Akzeptierte Antwort
Chris
am 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 Kommentare
Chris
am 19 Apr. 2022
Bearbeitet: Chris
am 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 = [];
Weitere Antworten (1)
Walter Roberson
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Dates and Time finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!