如何在python中将J2000时间转换为UTC?

时间:2017-09-29 15:24:27

标签: python python-2.7 time utc astropy

我有时间用J2000格式,即。在1-1-2000中午之后的几秒钟,我希望在格式为[year-month-day hour:min:sec.millisec]的数组中转换为UTC时间。 AstroPy中是否有某些功能或类似的功能进行转换?

输入: 时间J2000:559889620.293秒

期望的输出: UTC时间:2017-09-28 16:53:40.293

3 个答案:

答案 0 :(得分:4)

如果您想使用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'

如果您不想记住julian日期(1.1.2000中午)的基线是什么,Time(2000, format='jyear')是一个不错的选择。

答案 1 :(得分:3)

偏移量是常量,因此您只需添加它:

>>> OFFSET = datetime(2000,1,1,12) - datetime(1970,1,1)
>>> datetime.utcfromtimestamp(559889620.293) + OFFSET
datetime.datetime(2017, 9, 28, 16, 53, 40, 293000)

答案 2 :(得分:3)

您只需将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)