how to floor time for each hour?

7 次查看(过去 30 天)
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
  2 个评论
KSSV
KSSV 2022-3-15
What's your desired output?
Lilya
Lilya 2022-3-16
to have the data at each hour instead of having different time steps for each hour

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2022-3-15
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 = 4×1 datetime array
12-Dec-2021 09 12-Dec-2021 09 12-Dec-2021 09 12-Dec-2021 09
dtv = datetime(tv, 'Format','dd-MMM-yyyy HH:00:00') % Display Hour, Set Rest To Zeros
dtv = 4×1 datetime array
12-Dec-2021 09:00:00 12-Dec-2021 09:00:00 12-Dec-2021 09:00:00 12-Dec-2021 09:00:00
The 'Format' name-value pair controls the display, so set it however you want it.
.
  3 个评论
Star Strider
Star Strider 2022-3-16
编辑:Star Strider 2022-3-16
As always, my pleasure!
EDIT — (16 Mar 2022 at 12:40)
To summarise the data for each hour, use the table2timetable function and then the retime function.
.

请先登录,再进行评论。

更多回答(2 个)

Steven Lord
Steven Lord 2022-3-15
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)
dtv = 5×1 datetime array
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
dtv2 = dateshift(dtv, 'start', 'hour')
dtv2 = 5×1 datetime array
12-Dec-2021 09:00:00 12-Dec-2021 09:00:00 12-Dec-2021 09:00:00 12-Dec-2021 09:00:00 12-Dec-2021 09:00:00
To check that the data has actually been changed:
dtv2 == dtv(1)
ans = 5×1 logical array
1 1 1 1 1
  3 个评论
Steven Lord
Steven Lord 2022-3-16
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.
Lilya
Lilya 2022-3-17
yes.. I did that and it works perfectly!
thank you very very much.

请先登录,再进行评论。


Arif Hoq
Arif Hoq 2022-3-15
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

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by