如何将 J2000 时间转换为 python 中的 UTC?
How to convert J2000 time to UTC in python?
我有 J2000 格式的时间,即。 1-1-2000 中午后的秒数,我想将其转换为格式为 [year-month-day hour:min:sec.millisec] 的数组中的 UTC 时间。 AstroPy 中是否有一些函数或类似的函数来进行转换?
输入:
J2000 中的时间:559889620.293 秒
期望的输出:
UTC 时间:2017-09-28 16:53:40.293
偏移量是常数,所以你可以直接加上它:
>>> OFFSET = datetime(2000,1,1,12) - datetime(1970,1,1)
>>> datetime.utcfromtimestamp(559889620.293) + OFFSET
datetime.datetime(2017, 9, 28, 16, 53, 40, 293000)
您只需将 timedelta
添加到基数 datetime
。
import datetime
datetime.datetime(2000, 1, 1, 12, 0) + datetime.timedelta(seconds=559889620.293)
returns:
datetime.datetime(2017, 9, 28, 16, 53, 40, 293000)
如果你想使用 astropy
你可以使用 Time
and TimeDelta
from astropy.time
:
>>> from astropy.time import TimeDelta, Time
>>> from astropy import units as u
>>> (Time(2000, format='jyear') + TimeDelta(559889620.293*u.s)).iso
'2017-09-28 16:53:35.293'
如果您不想记住儒略日期(2000 年 1 月 1 日中午)的基准是什么,Time(2000, format='jyear')
是一个不错的选择。
我有 J2000 格式的时间,即。 1-1-2000 中午后的秒数,我想将其转换为格式为 [year-month-day hour:min:sec.millisec] 的数组中的 UTC 时间。 AstroPy 中是否有一些函数或类似的函数来进行转换?
输入: J2000 中的时间:559889620.293 秒
期望的输出: UTC 时间:2017-09-28 16:53:40.293
偏移量是常数,所以你可以直接加上它:
>>> OFFSET = datetime(2000,1,1,12) - datetime(1970,1,1)
>>> datetime.utcfromtimestamp(559889620.293) + OFFSET
datetime.datetime(2017, 9, 28, 16, 53, 40, 293000)
您只需将 timedelta
添加到基数 datetime
。
import datetime
datetime.datetime(2000, 1, 1, 12, 0) + datetime.timedelta(seconds=559889620.293)
returns:
datetime.datetime(2017, 9, 28, 16, 53, 40, 293000)
如果你想使用 astropy
你可以使用 Time
and TimeDelta
from astropy.time
:
>>> from astropy.time import TimeDelta, Time
>>> from astropy import units as u
>>> (Time(2000, format='jyear') + TimeDelta(559889620.293*u.s)).iso
'2017-09-28 16:53:35.293'
如果您不想记住儒略日期(2000 年 1 月 1 日中午)的基准是什么,Time(2000, format='jyear')
是一个不错的选择。