Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将时间增量添加到skyfield时间_Python_Skyfield - Fatal编程技术网

Python 将时间增量添加到skyfield时间

Python 将时间增量添加到skyfield时间,python,skyfield,Python,Skyfield,使用此代码定义计算日出和日落之间的时间点: 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(da

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

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
的内容。

您可以使用
datetime
timedelta
datetime
和skyfield的
Time
对象之间进行转换,如下所示:

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
的所有功能

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

幸运的是,你可以在一天中添加一个!正如文件所说:

“您可以自由提供超出范围的值,并将其留给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'