使用timedelta

时间:2018-02-14 17:13:29

标签: python datetime astropy

我有一个数据集,其时间为1-1-1 00:00:0.0 UTC时间,最后一次是736740.125天。

表明最后日期是2018年2月14日03:00 UTC。

使用astropy:

from astropy.time import Time,Timedelta
(Time('0001-01-01 00:00:00.0',format='iso')+TimeDelta(736740.125,format='jd')).iso

输出为'2018-02-16 02:59:23.000'

还有朱利安时代:

Time(Time('0001-01-01 00:00:00',format='iso').jd+736740.125,format='jd').iso
Time('2018-02-14 03:00:00',format='iso').jd-Time('0001-01-01 00:00:00',format='iso').jd

输出为'2018-02-16 03:00:00.000'736738.125

与datetime类似:

from datetime import datetime
datetime(2018,2,14,3)-datetime(1,1,1)

输出为datetime.timedelta(736738, 10800),736738.125天

数据集在2018年2月14日03:00 UTC的最后指定日期之后肯定没有数据。我也有与开始日期相同的2天差异,它表示为2014年2月20日00:00 UTC,自1-1-1 00:00:0.0 UTC后735285.0天。但是:

Time('2014-02-20 00:00:00',format='iso').jd-Time('0001-01-01 00:00:00',format='iso').jd
datetime(2014,2,20)-datetime(1,1,1)

两者都提供735283.0

有谁知道2天的差异可能来自哪里?

修改

我在IDL中使用JULDAY函数(https://www.harrisgeospatial.com/docs/julday.html

进行匹配
JULDAY(2,14,2018,3)-JULDAY(1,1,1,0)

给予736740.125

IDL > JULDAY(2,14,2018,3)
Python > Time('2018-02-14 03:00:0.0',format='iso').jd

均给予2458163.625

IDL > JULDAY(1,1,1,0)
Python > Time('0001-01-01 00:00:0.0',format='iso').jd

idl给出1721423.5 python给出1721425.5

我查看了JULDAY和Time()之间从1-2000年1月1日00:00的差异.jd

天数差异IDL-python

0 starting in 1583
10 for 1501-1582
9 for 1401-1500
8 for 1301-1400
etc for each 100 years

因此,对于1-100年,有-2天

我不确定是否有一种已经存在的方法可以在python中复制IDL的JULDAY正在做什么。

0 个答案:

没有答案