how to floor time for each hour?
6 views (last 30 days)
Show older comments
Hi Experts,
I have this time format, and i want to have the time only for each hour. Could anyone please help with this?
'12-Dec-2021 09:09:04'
'12-Dec-2021 09:24:04'
'12-Dec-2021 09:39:04'
'12-Dec-2021 09:54:04'
Much appreciated
Accepted Answer
Star Strider
on 15 Mar 2022
Try this —
tv = {'12-Dec-2021 09:09:04'
'12-Dec-2021 09:24:04'
'12-Dec-2021 09:39:04'
'12-Dec-2021 09:54:04'};
dtv = datetime(tv, 'Format','dd-MMM-yyyy HH') % Display Only The Hour
dtv = datetime(tv, 'Format','dd-MMM-yyyy HH:00:00') % Display Hour, Set Rest To Zeros
.
3 Comments
Star Strider
on 16 Mar 2022
Edited: Star Strider
on 16 Mar 2022
As always, my pleasure!
EDIT — (16 Mar 2022 at 12:40)
.
More Answers (2)
Steven Lord
on 15 Mar 2022
If you want to actually modify the data rather than just changing how the data is displayed you can use dateshift.
tv = {'12-Dec-2021 09:00:00',
'12-Dec-2021 09:09:04'
'12-Dec-2021 09:24:04'
'12-Dec-2021 09:39:04'
'12-Dec-2021 09:54:04'};
dtv = datetime(tv)
dtv2 = dateshift(dtv, 'start', 'hour')
To check that the data has actually been changed:
dtv2 == dtv(1)
3 Comments
Steven Lord
on 16 Mar 2022
Based on your answer to KSSV's comment "to have the data at each hour instead of having different time steps for each hour" I suspect that storing your data in a timetable array and using retime to retime it to an hourly basis might be a solution to your larger problem.
Arif Hoq
on 15 Mar 2022
A={'12-Dec-2021 09:09:04'
'12-Dec-2021 09:24:04'
'12-Dec-2021 09:39:04'
'12-Dec-2021 09:54:04'};
B=datetime(A,'Format','hh') % if only hour
B1=datetime(A,'Format','hh:mm:ss') % if hour,min,sec
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!