如何从gmtoffset计算本地时间

时间:2011-03-14 15:12:46

标签: python timezone

即时为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。

有什么建议吗?谢谢!

1 个答案:

答案 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呼叫应答时的本地时间,则必须将代码修改为响应标题上的时间。