I want to convert the Julian date 273.791667 to calendar day and time

17 次查看(过去 30 天)
I want to convert the Julian date 273.791667 to calandar day and time
  1 个评论
James Tursa
James Tursa 2017-7-20
编辑:James Tursa 2017-7-20
As a nit, that number should be referred to as "day of year" and not "Julian date". I know there are segments of the scientific community that call it a "Julian date", but that usage is confusing at best. E.g., the definition of the term from the USNO:
You will find variations of this term in the literature depending on the underlying time scale (e.g., UT or TT) and 0 point, but even these are not "day of the year" types of measures.

请先登录,再进行评论。

采纳的回答

Chad Greene
Chad Greene 2017-7-20
You'll have to specify a year, but for 2017 you can get a date vector like this:
datevec(datenum(2017,0, 273.791667))
or a date string like this:
datestr(datenum(2017,0, 273.791667))
  8 个评论
Thishan Dharshana Karandana Gamalathge
编辑:James Tursa 2017-7-20
From a .mat file "X" with size(10x8), I am trying to calculate Z. But the following code gives an error. i cannot figure out the reason. Please help me with that. Thanks.
load X
for i=1:10
Y(i)=X(i,1);
UTC_start_time(i)=datevec(datenum(2010,0,Y(i,1)));
end

请先登录,再进行评论。

更多回答(1 个)

Steven Lord
Steven Lord 2017-7-20
Use datetime. You can 'ConvertFrom' 'juliandate' (Number of days since noon UTC 24-Nov-4714 BCE (proleptic Gregorian calendar)) or 'modifiedjuliandate' (Number of days since midnight UTC 17-Nov-1858).
If you want to determine what the 273.791667th day of the year is, try something like this. Check the day of the year using the day function with the 'dayofyear' option:
x = datetime(2017, 1, 0) + days(273.791667)
day(x, 'dayofyear')
  2 个评论
Walter Roberson
Walter Roberson 2017-7-20
If you want to specify that this was UTC, you can use
x = datetime(2017, 1, 0, 'TimeZone', 'UTC') + days(273.791667)
and if you then want to see it in local time,
x.TimeZone = 'local'
Note that this is not the same as
x = datetime(2017, 1, 0, 'TimeZone', 'local') + days(273.791667)
In order for the timezone conversion to be done properly, you need to set to UTC first and then change the timezone; if you just set the timezone directly like in this second example then MATLAB will assume that you mean that the given date/time information is being stated relative to your timezone.
Thishan Dharshana Karandana Gamalathge
Now when I import the local time data (converted from the Julian date), it is restricted to only two decimals. How can I have it for 6 decimals?

请先登录,再进行评论。

类别

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

标签

Community Treasure Hunt

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

Start Hunting!

Translated by