将时间增量添加到天空时间

时间:2019-01-09 00:56:54

标签: python skyfield

skyfield Almanach documentation

使用此代码定义计算日出和日落之间的时间点:

t0 = ts.utc(2018, 9, 12, 4)
t1 = ts.utc(2018, 9, 13, 4)

如果我只想使用一个(开始)日期并将下一个日期设置为恰好是一天之后呢?我不能只在day参数中添加一个,因为这在月底是不正确的。

使用Python的datetime,我可以使用

from datetime import datetime, timedelta

datetime(2019, 1, 31, 12) + timedelta(days=1)
# datetime.datetime(2019, 2, 1, 12, 0)

但是我在skyfield API文档中找不到类似timedelta的东西。

2 个答案:

答案 0 :(得分:2)

  

如果我只想使用一个(开始)日期并将下一个日期设置为恰好在一天之后呢?我不能只在day参数中添加一个,因为这在月底时是不正确的。

很高兴,您可以在当天添加一个!如文档所述:

https://rhodesmill.org/skyfield/time.html

“您可以随意提供超出范围的值,并将其留给Skyfield来得出正确的结果”

>>> from skyfield.api import load
>>> ts = load.timescale()
[#################################] 100% deltat.data
>>> t = ts.utc(2018, 2, 28 + 1)
>>> t.utc_jpl()
'A.D. 2018-Mar-01 00:00:00.0000 UT'

答案 1 :(得分:0)

您可以使用datetime的{​​{1}},并在timedelta和skyfield的datetime对象之间转换,如下所示:

Time

虽然肯定不漂亮,但是它允许您使用Python的t0 = ts.utc(2019, 1, 31, 12) t1 = ts.utc(t0.utc_datetime() + timedelta(days=1)) # Print t1.utc_iso() # '2019-02-01T12:00:00Z' 的所有功能。