Python中的时区列出了一个城市清单

发布于 2025-01-20 01:15:34 字数 99 浏览 0 评论 0原文

我有一个想要提取时区的城市列表。我能够获取每个城市的坐标,并且我知道分别获取每个城市时区的代码。希望有人可以帮助我循环遍历数据集中的城市以获取时区,这样我就不必执行此练习 540 次。

I have a list of cities for which I would like to extract the timezone. I am able to get the coordinates for each of these cities and I know the code to get the timezone for each of the cities individually. Hoping someone can help me loop through the cities in a dataset to get the timezones, so i don't have to do this exercise 540 times.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牵强ㄟ 2025-01-27 01:15:34

为此,您可以使用 tzwhere 和 pytz。

import datetime
import pytz
from tzwhere import tzwhere


locations = {
    'New York': (40.7128, -74.0059),
    'London': (51.5074, -0.1278),
    'Paris': (48.8566, 2.3522),
}

tz = tzwhere.tzwhere()

for location, (lat, lon) in locations.items():

    # Get the timezone string for location
    timezone_name = tz.tzNameAt(lat, lon)

    # Get the timezone object
    timezone = pytz.timezone(timezone_name)

    # Get the current time in that timezone
    current_time = datetime.datetime.now(timezone)

    print(f'{location=} {timezone_name=} {str(current_time)=}')

上面的代码将打印:

location='New York' timezone_name='America/New_York' str(current_time)='2022-04-08 23:54:38.077929-04:00'
location='London' timezone_name='Europe/London' str(current_time)='2022-04-09 04:54:41.271721+01:00'
location='Paris' timezone_name='Europe/Paris' str(current_time)='2022-04-09 05:54:41.279327+02:00'

You can use tzwhere and pytz for this.

import datetime
import pytz
from tzwhere import tzwhere


locations = {
    'New York': (40.7128, -74.0059),
    'London': (51.5074, -0.1278),
    'Paris': (48.8566, 2.3522),
}

tz = tzwhere.tzwhere()

for location, (lat, lon) in locations.items():

    # Get the timezone string for location
    timezone_name = tz.tzNameAt(lat, lon)

    # Get the timezone object
    timezone = pytz.timezone(timezone_name)

    # Get the current time in that timezone
    current_time = datetime.datetime.now(timezone)

    print(f'{location=} {timezone_name=} {str(current_time)=}')

The code above would print:

location='New York' timezone_name='America/New_York' str(current_time)='2022-04-08 23:54:38.077929-04:00'
location='London' timezone_name='Europe/London' str(current_time)='2022-04-09 04:54:41.271721+01:00'
location='Paris' timezone_name='Europe/Paris' str(current_time)='2022-04-09 05:54:41.279327+02:00'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文