其他分享
首页 > 其他分享> > 如何通过城市和国家获得时区?

如何通过城市和国家获得时区?

作者:互联网

在我的django项目中,我有一个小型酒店数据库,其中包括城市和国家.

我可以通过将城市和国家作为参数传递来获得该地点的时区.

我想这样做的原因是因为我有一些命令可以根据酒店的入住时间和现在的时间的不同而有效.由于datetime.now()给出了天真的日期时间,我不能用它来与酒店时间进行比较.

我如何期待解决方案.
谢谢 :)

解决方法:

要按城市和国家/地区解析时区,首先需要获取纬度/经度坐标.看到这个问题及其各种答案:https://stackoverflow.com/q/23572/634824

请注意,世界上有些城市的部分区域可以观察到不同的时区.在这些情况下,您可能会有一些小的误差.看这篇文章:can 2 timezone be for 1 city?

既然您说您正在寻找特定地点(酒店)的位置,那么您最好使用其完整地址对每个地方的确切坐标进行地理编码.有很多服务,例如the one provided by Google here.

然后使用此处描述的服务之一中的坐标:How to get a time zone from a location using latitude and longitude coordinates?

一旦你拥有了时区ID,例如Asia / Seoul或America / New_York,你可以在pytz函数中使用它,因为用户在他的回答中显示了falsetru.

如果您感兴趣的城市已经是时区数据库中定义的城市之一,您可以通过提前检查来加快速度.但是,世界上有数千个城市,而不仅仅是那些有时区的城市.

其他想法

>您可以将GeoDjango与时区地图数据found here一起使用.
>您可以查看Django-GeoNames并查看是否包含GeoNames的时区.
>可能还有其他一些Django或Python特定的库,我在5分钟内没有找到我在Google上搜索的内容.

标签:python,timezone,django,pytz
来源: https://codeday.me/bug/20190612/1228363.html