How to extract hour+minute from DateTime vector ?
12 views (last 30 days)
Show older comments
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 Comments
Stephen23
on 8 Jun 2022
D = datetime(2016,4,5,[8;11],43,11)
isAMRush = isbetween(timeofday(D),duration(7,45,0),duration(8,45,0))
Accepted Answer
Stephen23
on 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 Comment
Peter Perkins
on 13 Jun 2022
Right.
I mean the real answer is, "you hardly ever need to actually explicitly extract individual time components."
More Answers (2)
dpb
on 8 Jun 2022
Convert to durations and use
isAMRush=iswithin(duration(hour(t),minute(t),0),duration(7,45,0),duration(8,45,0));
Steven Lord
on 8 Jun 2022
d = datetime('15-Apr-2016 11:43:11')
[h, m, s] = hms(d)
or
tod = timeofday(d)
0 Comments
See Also
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!