Flatlib使用当前日期和时间

时间:2018-08-18 18:33:50

标签: python python-3.x python-datetime pyephem

有人可以帮我吗?

我正在使用Flatlib计算行星位置,但是用于输入计算日期和时间的代码是固定的,因此您每次都必须对其进行更新。

是否有一种方法可以使用datetime.now() [或另一种方法]自动完成Datetime()中的字段?我无法在date = Datetime()中获取代码来接受任何形式的datetime代码。

我希望获得Datetime()来接受月/日/年和小时:分钟:秒格式,例如(08/24/2018,21:17:00)

使用以下代码,我得到以下错误:

C:\ Users \ famil> C:\ Users \ famil \ Desktop \ flatlib_working_degree.py (“ {0.month} / {0.day} / {0.year}”,“ 21:15:41”) 追溯(最近一次通话):   在第13行的文件“ C:\ Users \ famil \ Desktop \ flatlib_working_degree.py”     日期=日期时间(x)    init 中的文件“ C:\ Users \ famil \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ flatlib \ datetime.py”,行177     self.date =日期(日期,日历)    init 中的文件“ C:\ Users \ famil \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ flatlib \ datetime.py”,第76行     self.jdn = int(值) TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是“元组”

from flatlib.datetime import Datetime
from flatlib.geopos import GeoPos
from flatlib.chart import Chart
from flatlib import const
import datetime

# set date and time to now

now = datetime.datetime.now()
x = '{0.month}/{0.day}/{0.year}, {0.hour}:{0.minute}:{0.second}'.format(now)
print(x)
date = Datetime(x)
pos = GeoPos('53n15', '2e31')

chart = Chart(date, pos, hsys=const.HOUSES_PLACIDUS, IDs=const.LIST_OBJECTS)  

# calculate body and degree value
asc = chart.get(const.ASC)
print(asc, asc.lon)
sun = chart.get(const.SUN)
print(sun, sun.lon, sun.movement())
moon = chart.get(const.MOON)

1 个答案:

答案 0 :(得分:1)

Flatlib的日期时间需要两个单独的输入来输入日期时间,您可以在此处进行检查:Github: flatlib/datetime.py

def __init__(self, date, time=0, utcoffset=0, calendar=GREGORIAN):

但是您的代码只有 datetime 1个参数,以逗号分隔。那是不正确的:

now = datetime.datetime.now()
date = Datetime(now.strftime("%Y/%m/%d, %H:%M"))

您应该这样写:

now = datetime.datetime.now()
date = Datetime(now.strftime("%Y/%m/%d"), now.strftime('%H:%M'))