Convert DoY and hour to datetime format
6 views (last 30 days)
I am very new to matlab and I am working with timeseries data. In the attached example, I want to add a new column as Datetime that displays datetime in the format year, month, day, hour, minute (YYYYMMDDHHMM). Your help will be much appreciated. Thanks.
Year DoY Hour Datetime
2013 1 0.5 201301010030
Abhishek Tiwari on 1 Jul 2022
It can be done by using datetime() with modified display format as demonstrated
T = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1053045/example.xlsx');
T.Datetime = datetime(T.Year, 1, T.DoY, floor(T.Hour), rem(T.Hour, 1).*60, 0, 'format', 'yyyyMMddHHmm')
These might be useful:
More Answers (1)
Eric Sofen on 1 Jul 2022
The datetime constructor is forgiving about day values that don't fit within a particular month and wrapping them appropriately:
t = readtable("https://www.mathworks.com/matlabcentral/answers/uploaded_files/1053045/example.xlsx")
t.DT = datetime(t.Year,1,t.DoY) + hours(t.Hour)
% Check that it looks reasonable further along...