how to read day of the year as datetime ?

13 vues (au cours des 30 derniers jours)
pruth
pruth le 25 Juil 2020
I have vector of dates, it looks like this
2019001
2019002
.
.
.
2019364
2019365
2019 is year and next number is day of the year.
anybody tell me how to use datenum or datetime here !
I have around 3 years of dara.

Réponse acceptée

per isakson
per isakson le 25 Juil 2020
Modifié(e) : per isakson le 25 Juil 2020
>> chr = sprintf( '%d', 2019364 );
>> sdn = datenum(str2double(chr(1:4)),1,0)+str2double(chr(5:end));
>> datetime( sdn, 'ConvertFrom', 'datenum' )
ans =
datetime
30-Dec-2019 00:00:00
>>
Added later
%%
d = [ 2019001; 2019002; 2019364; 2019365 ];
%%
chr = num2str( d );
chr = strjust( chr, 'left' );
sdn = datenum( str2num(chr(:,1:4)), 1, 0 ) + str2num(chr(:,5:end));
dt = datetime( sdn, 'ConvertFrom', 'datenum' )
Outputs
dt =
4×1 datetime array
01-Jan-2019 00:00:00
02-Jan-2019 00:00:00
30-Dec-2019 00:00:00
31-Dec-2019 00:00:00

Plus de réponses (2)

madhan ravi
madhan ravi le 25 Juil 2020
v = regexprep(""+vector,'(\d{4})(\d+)','00/$2/$1');
Wanted = datetime(datestr(v))
  2 commentaires
madhan ravi
madhan ravi le 25 Juil 2020
Days_in_a_year = double(regexprep(v, '(\d+)/(\d+)/(\d+)', '$2'))
madhan ravi
madhan ravi le 25 Juil 2020
For older versions:
v = regexprep(sprintfc('%d',vector),'(\d{4})(\d+)','00/$2/$1'); % sprintfc() undocumented
Wanted = datetime(datestr(v))
Days_in_a_year = str2double(regexprep(v, '(\d+)/(\d+)/(\d+)', '$2'));

Connectez-vous pour commenter.


Star Strider
Star Strider le 25 Juil 2020
Another approach:
ydv = [2019001
2019002
2019364
2019365]; % ‘YearDay’ Vector
Years_Days = datetime(num2str(fix(ydv/1000)), 'InputFormat','yyyy') + caldays(rem(ydv,1000)-1)
producing:
Years_Days =
4×1 datetime array
01-Jan-2019
02-Jan-2019
30-Dec-2019
31-Dec-2019
Use the 'Format' name-value pair to get the desired output format. The easiest way to do that (for one example) is simply:
Years_Days.Format = 'yyyy-MM-dd';
to get:
Years_Days =
4×1 datetime array
2019-01-01
2019-01-02
2019-12-30
2019-12-31
.

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by