我正在使用日出日落api来获得日出和日落。
>>> url = "https://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400&date=2017-07-31"
>>> import urllib2
>>> import json
>>> resp = urllib2.urlopen(url)
>>> data = json.load(resp)
>>> sunriseUtc = data.get("results").get("sunrise")
>>> sunriseUtc
u'5:23:18 AM'
我想将此UTC时间转换为在URL中传递的Long,Lat的本地时间。即不是用户本地。
非常感谢任何帮助。
答案 0 :(得分:0)
与使用网页查询相比,您可能最好使用pyephem,pip install pyephem
能够为给定位置提供日出/设定时间(以及更多),(lat / (长),基于物理价值。
>>> import ephem
>>> sun = ephem.Sun()
>>> greenwich = ephem.Observer()
>>> greenwich.lat = '51:28:38'
>>> print(greenwich.horizon)
0:00:00.0
>>> greenwich.date = '2007/10/1'
>>> r1 = greenwich.next_rising(sun)
>>> greenwich.pressure = 0
>>> greenwich.horizon = '-0:34'
>>> greenwich.date = '2007/10/1'
>>> r2 = greenwich.next_rising(sun)
>>> print('Visual sunrise: %s' % r1)
Visual sunrise: 2007/10/1 05:59:30
>>> print('Naval Observatory sunrise: %s' % r2)
Naval Observatory sunrise: 2007/10/1 05:59:50
答案 1 :(得分:0)
使用Python 3.8:
要开始在下面添加以下模块:
导入时间
从本地时间导入时间
接下来,调用localtime()方法并插入您的时间(在本例中为变量“ sunriseUtc”):
localtime(sunriseUtc)。
就是这样。
如果您想格式化时间(如何显示时间),则需要从时间模块中导入strftime(缩写为字符串格式时间)。然后为您的时间设置格式。然后从上方传递相同的参数: 例如
从时间导入strftime
strftime(“%m /%d /%Y%I:%M:%S%p”,本地时间(sunriseUtc))
'05 / 12/2019 05:57:05 AM'
当使用请求模块从openweathermap.org的API下载数据时,这对我有用。
如果需要更多支持,请参阅时间模块的文档: C++ Windows - How to get process path from its PID
注意:我的项目是基于“项目:获取当前天气数据”中的示例构建的: https://docs.python.org/2/library/time.html#time.strftime