我有一段时间,是以J2000格式表示的,即从2000年1月1日中午开始的秒数,我想将其转换为UTC时间,并以[年-月-日 时:分:秒.毫秒]的格式存储在数组中。是否有AstroPy或类似工具可用于进行此转换?
输入: J2000格式的时间: 559889620.293 秒
期望输出: UTC时间: 2017-09-28 16:53:40.293
我有一段时间,是以J2000格式表示的,即从2000年1月1日中午开始的秒数,我想将其转换为UTC时间,并以[年-月-日 时:分:秒.毫秒]的格式存储在数组中。是否有AstroPy或类似工具可用于进行此转换?
输入: J2000格式的时间: 559889620.293 秒
期望输出: UTC时间: 2017-09-28 16:53:40.293
astropy
,你可以使用 astropy.time
中的 Time
和 TimeDelta
。>>> 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'
Time(2000, format='jyear')
是一个很好的选择,如果你不想记住儒略日的基准日期(2000年1月1日中午)。
TimeDelta
,以下代码可以工作,因为你可以将时间数量对象添加到时间中:(Time('J2000.0') + 559889620.293*u.s).iso
- Tom Aldcroft>>> 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)
返回值:
datetime.datetime(2017, 9, 28, 16, 53, 40, 293000)