Pyephem - datetime.datetime和ephem之间的时差.日期



尝试在标准python datetime例程datetime.datetime和Pyphem例程ephem之间进行转换。日期有时(除了预期的截断)在一秒的范围内存在奇特的差异。

尝试示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ephem
import datetime
now_datetime = datetime.datetime.now()
now_ephem = ephem.Date(now_datetime)
print "Datetime: ", now_datetime
print "Ephem   : ", now_ephem

重复调用给出的输出类似于:

thl@thl-lap-001:$ ./timedifference.py
Datetime:  2013-12-20 08:28:11.536814
Ephem   :  2013/12/20 08:28:11
thl@thl-lap-001:$ ./timedifference.py
Datetime:  2013-12-20 08:28:16.088484
Ephem   :  2013/12/20 08:28:15

最后两行在 Datetim 中显示 16.somethig 秒,转换为 15 秒到ephem。日期。

有解释吗?

来自 PyEphem 主页:

PyEphem使用一个简单的浮点数来表示其天文学例程中的日期和时间。

浮点精度总是带来某种程度的近似。我认为这就是你在例子中看到的。

编辑

经过更多的挖掘,在这种情况下它没有捕捉到十分之一秒的原因是 ephem 在创建 ephem 时忽略了微秒。日期时间的日期。看起来在版本 3.7.5.2 中对此进行了修复

回答问题

在这种情况下,python双精度浮点数不够精确,可以捕获至少十分之一秒吗?

绝对!

import ephem
'%f' % ephem.Date('2013/12/20 12:34:56')
=> '41627.024259'
'%f' % ephem.Date('2013/12/20 12:34:56.1')
=> '41627.024260'

最新更新