4

Skyfield Almanach 文档

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

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

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

使用 Pythondatetime我可以使用

from datetime import datetime, timedelta

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

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

4

2 回答 2

5

如果我只想使用一个(开始)日期并将下一个日期设置为正好一天之后呢?我不能只在 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'
于 2019-01-19T20:15:06.370 回答
0

您可以使用datetime's并在和 skyfield 的对象timedelta之间转换回来,如下所示:datetimeTime

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'

虽然肯定不漂亮,但它允许您使用 Python 的所有功能datetime

于 2019-01-09T00:56:53.790 回答