在我的 django 项目中,我有一个小型酒店数据库,其中包含字段city
和 country
.
我可以通过以某种方式将and作为参数timezone
传递给那个地方吗?city
country
我想这样做的原因是因为我有一些命令可以根据酒店的时间差异 check-in
和现在那个酒店的时间来工作。由于 datetime.now() 给出了天真的日期时间,我不能用它来与酒店时间进行比较。
我如何期待解决方案。谢谢 :)
要按城市和国家/地区解析时区,您首先需要获取纬度/经度坐标。有多种方法可以做到这一点,包括各种城市数据库、机场代码或反向地理编码地址。
请注意,世界上有些城市的部分地区遵循不同的时区。在这些情况下,您可能会有一些小的误差。看到这个帖子:2个时区可以代表1个城市吗?
既然您说您正在寻找特定地点(酒店)的位置,那么您最好使用其完整地址对每个地点的确切坐标进行地理编码。这方面有很多服务,比如谷歌在这里提供的服务。
然后使用此处描述的服务之一中的坐标:如何使用纬度和经度坐标从某个位置获取时区?
一旦您有了时区 ID,例如Asia/Seoul
or ,您就可以在pytzAmerica/New_York
函数中使用它,正如用户 falsetru 在他的回答中所显示的那样。
如果您感兴趣的城市已经是时区数据库中定义的城市之一,您可以通过提前检查来加快速度。但世界上还有成千上万的城市,而不仅仅是那些有时区 ID 的主要城市。
其他想法