在我的django项目中,我有一个小型酒店数据库,其中包含city
和country
字段。
我可以通过传递timezone
和city
作为参数来获取该地点的country
。
我想这样做的原因是因为我有一些命令可以根据酒店check-in
时间的差异以及现在的时间来实现。由于datetime.now()给出了天真的日期时间,我不能用它来与酒店时间进行比较。
我如何期待解决方案。 谢谢:))
答案 0 :(得分:7)
要按城市和国家/地区解析时区,首先需要获取纬度/经度坐标。请参阅此问题及其各种答案: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函数中使用它,因为用户在他的回答中显示了错误。
如果您感兴趣的城市已经是时区数据库中定义的城市之一,那么可以通过提前检查来加快速度。但是,世界上有数千个城市,而不仅仅是那些有时区的城市。
其他想法