Convert date to specific format julian date
5 views (last 30 days)
Show older comments
Need to convert calendar date to Julian date in a specific format (YYDDD). Ex: Day = (2016-05-04,2016-08-24,2016-12-31) J-Day = (16125,16237,16366)
Any help would be appreciated. Thanks.
0 Comments
Accepted Answer
Gareth Thomas
on 3 Oct 2016
Datetime works nicely. I believe it came out in R2014b.
a = datetime('2016-05-04');
a.Format='yyddd'
4 Comments
Peter Perkins
on 3 Oct 2016
If you are looking to get a string, Gareth was on the right track, just off by case:
>> a = datetime('2016-05-04')
a =
datetime
04-May-2016
>> char(a,'yyDDD')
ans =
'16125'
Of course, the whole point of datetime is to not have to convert between representations all the time, so perhaps
>> a.Format='yyDDD'
a =
16125
would serve as well. If you want a number, then your accepted answer is the way to go.
More Answers (4)
Steven Lord
on 3 Oct 2016
Create a datetime array from the char vectors containing the yyyy-MM-dd form of the dates. Use the juliandate function to compute the Julian date from the datetime array.
1 Comment
Michael C.
on 3 Oct 2016
My understanding was that Julian usually referred to the number of days since Jan 1 4713 BC, but judging by your example, you are using March 11th, 1972.
Either way, you can get number of days by doing a subtraction on two "datenum"s
datenum([2016 08 24 0 0 0]) - datenum([1972 3 11 0 0 0])
which gives the 16237. Passing in a string for the date will also work.
Ankit Kanthe
on 3 Oct 2016
Here's what I got combining some answers:
d = '2016-05-04'; dt = datime(d); jday = (year(dt)-2000)*1000 + day(dt,'dayofyear') The answer comes out with 16125. It's not pretty and not useful for dates before the year 2010 (maybe with some minor formatting it would be ok for 2000-2009). It does however work for my 2014-2016 dates so far.
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!