我有时间用J2000格式,即。在1-1-2000中午之后的几秒钟,我希望在格式为[year-month-day hour:min:sec.millisec]的数组中转换为UTC时间。 AstroPy中是否有某些功能或类似的功能进行转换?
输入: 时间J2000:559889620.293秒
期望的输出: UTC时间:2017-09-28 16:53:40.293
答案 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)