用于操作位置感知、希伯来语日期、时间和假日的python包。
hebcal的Python项目详细描述
赫伯卡尔
用于处理希伯来语日期、时间和假日的python包
注意:这仍在开发中,尚未准备好生产。仍然会有很多突破性的变化。
有几个python包处理希伯来语日期、z'manim和犹太节日。然而,由于希伯来日历认为黄昏是新的一天的开始,我发现与其他包一起工作非常不方便。仅仅将格里高利日期转换为希伯来日期并不能给您正确的转换,因为它可能已经过了黄昏,需要手动调整。
任何犹太节日套餐也一样。你首先需要弄清楚真正的希伯来语日期是什么,然后才能确定它目前是否是一个假日。
我想问一句“今天是休息日吗?”我应该知道是真是假。
我写信给赫伯卡尔是为了解决这些问题。它需要一个纬度和经度来计算位置。
它可以通过pip:pip install hebcal
安装。
下面是一个简单的示例:
importhebcaltime_info=hebcal.TimeInfo.now(latitude=40.089909,longitude=-74.216270)print(time_info.today_sunrise().strftime('%-I:%M:%S %p'))###6:48:58 AMprint(time_info.hebrew_date)###(5779, 7, 19)
您可以用字符串输入特定的日期和时间:
time_info=hebcal.TimeInfo('2018, 9, 27 10:07 pm',latitude=40.089909,longitude=-74.216270)print(time_info.today_sunrise().strftime('%-I:%M:%S %p'))###6:48:58 AMprint(time_info.hebrew_date)###(5779, 7, 19)
返回的希伯来语日期考虑了日出/日落。如果是日落后,它会自动返回正确的希伯来语日期。
您还可以直接查询它的夜晚或白天
print(time_info.is_night())###Trueprint(time_info.is_yom())###False注意:从纬度/经度计算时区会减慢计算速度。最好将时区作为参数传递:
time_info=hebcal.TimeInfo.now(timezone='America/New_York',latitude=40.089909,longitude=-74.216270)
您可以使用hebcal来手动获取时区:
fromhebcal.util.locationimportget_locationtimezone=get_location(latitude==40.089909,longitude=-74.216270)print(timezone)###America/New_York
赫布卡尔·兹马尼姆·兹马尼姆
注意:所有时间都是datetime.datetime对象。它们可以使用.strftime()
格式化。
下面是hebcal.zmanim的一个示例
time_info=hebcal.TimeInfo.now(latitude=40.089909,longitude=-74.216270)# pass a hbcal.TimeInfo object into Zmanimzmanim=hebcal.Zmanim(time_info)print(zmanim.last_shema_ma)###2018-09-27 09:12:12.895624-04:00print(zmanim.last_shema_ma.strftime("%-I:%M:%S %p"))###9:12:12 AM
除了访问单独的zmanim,您可以只打印zmanim对象,它返回格式化的时间(即9:12:12 AM
)。
另一个选择是将所有zmanim配置为json:
zmanim_json=hebcal.Zmanim.json(time_info)print(zmanim_json['earliest mincha'])###2018-09-27 13:17:19.756457-04:00
在此处添加Calandar自述文件。