How to extract hour+minute from DateTime vector ?
22 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Doug Leaffer
am 8 Jun. 2022
Kommentiert: Peter Perkins
am 13 Jun. 2022
Q: how do I best extract BOTH the hour + minute from a DateTime vector in MATLAB ? My DateTime format is: 15-Apr-2016 11:43:11
I need to fine-tune the rush hours to the exact time ranges below. My current code, below, works but does not include the 'minutes'. Please help.
t = datetime(data.DateTime);d = day(t,'dayofyear'); DayofYr = d;
tf = isweekend(t); % returns logical 1 = true = weekend, else 0
Wkend = tf;
h = hour(data.DateTime); % extract hour from Datetime vector
isAMRush = h>=7 & h<9 ==1; % needs to be revised to: 745a -845a morning rush
isPMRush = h>=15 & h<17 ==1; % needs to be revised to: 330p -430p afternoon rush
%
2 Kommentare
Stephen23
am 8 Jun. 2022
D = datetime(2016,4,5,[8;11],43,11)
isAMRush = isbetween(timeofday(D),duration(7,45,0),duration(8,45,0))
Akzeptierte Antwort
Stephen23
am 8 Jun. 2022
D = datetime(2016,4,5,[8;11],43,11)
isAMRush = isbetween(timeofday(D),duration(7,45,0),duration(8,45,0))
1 Kommentar
Peter Perkins
am 13 Jun. 2022
Right.
I mean the real answer is, "you hardly ever need to actually explicitly extract individual time components."
Weitere Antworten (2)
Steven Lord
am 8 Jun. 2022
d = datetime('15-Apr-2016 11:43:11')
[h, m, s] = hms(d)
or
tod = timeofday(d)
0 Kommentare
dpb
am 8 Jun. 2022
Convert to durations and use
isAMRush=iswithin(duration(hour(t),minute(t),0),duration(7,45,0),duration(8,45,0));
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!