即时为pyipinfodb使用此包装器(ipinfodb API)。我只想知道如何根据此响应计算基于IP的本地时间:
{u'City': u'San Diego',
u'CountryCode': u'US',
u'CountryName': u'United States',
u'Dstoffset': u'0',
u'Gmtoffset': u'-25200',
u'Ip': u'76.192.218.153',
u'Isdst': u'1',
u'Latitude': u'32.7977',
u'Longitude': u'-117.132',
u'RegionCode': u'06',
u'RegionName': u'California',
u'Status': u'OK',
u'TimezoneName': u'America/Los_Angeles',
u'ZipPostalCode': u''}
这是此IP的Web客户端:http://ipinfodb.com/ip_locator.php?ip=76.192.218.153并返回计算的TimeZone和LocalTime。
有什么建议吗?谢谢!
答案 0 :(得分:2)
这样做:
import datetime
#parse json to get offset(import json; json.load(resonse); etc.)
#offset is gmtoffset + dstoffset
datetime.datetime.utcnow() + datetime.timedelta(seconds = offset)
请注意,这将是您执行utcnow时ip的本地时间。
如果您想要api呼叫应答时的本地时间,则必须将代码修改为响应标题上的时间。