Python 如何从当地人那里找到另一个国家的时间

Python 如何从当地人那里找到另一个国家的时间,python,timezone,Python,Timezone,这次,我有一些关于Python中时区的问题 从世界任何地方来说,我如何将当地时间转换成纽约时间?首先,我认为datetime模块是应该使用的。我应该使用utcfromtimestamp(),然后使用其他一些函数转换为纽约时间吗?我该怎么做呢。 谢谢听起来您想使用pytz模块。这些文档非常全面,并为您提供了一些很好的示例 从文档中: >>> from datetime import datetime, timedelta >>> from pytz import

这次,我有一些关于Python中时区的问题

从世界任何地方来说,我如何将当地时间转换成纽约时间?首先,我认为datetime模块是应该使用的。我应该使用utcfromtimestamp(),然后使用其他一些函数转换为纽约时间吗?我该怎么做呢。
谢谢

听起来您想使用
pytz
模块。这些文档非常全面,并为您提供了一些很好的示例

从文档中:

>>> from datetime import datetime, timedelta
>>> from pytz import timezone
>>> import pytz
>>> utc = pytz.utc
>>> utc.zone
'UTC'
>>> eastern = timezone('US/Eastern')
>>> eastern.zone
'US/Eastern'
>>> amsterdam = timezone('Europe/Amsterdam')
>>> fmt = '%Y-%m-%d %H:%M:%S %Z%z'
>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0))
>>> print(loc_dt.strftime(fmt))
2002-10-27 06:00:00 EST-0500
>>> ams_dt = loc_dt.astimezone(amsterdam)
>>> ams_dt.strftime(fmt)
'2002-10-27 12:00:00 CET+0100'

从本地来看,我猜你希望它离线。您可以使用datetime和pytz包将datetime转换为任何其他国家的时间

from tkinter import Tk, Button, Label, Entry, END
from datetime import datetime
import pytz

root = Tk()
root.title("Time In Arabia")


def center_window(w=400, h=200):
    ws = root.winfo_screenwidth()
    hs = root.winfo_screenheight()
    x = (ws/1.9) - (w/1.5)    
    y = (hs/3) - (h/2)
    root.geometry('%dx%d+%d+%d' % (w, h, x, y))

center_window(400, 200)

time = Entry(root)
time.pack()

def update():       #Put the timezone you want below
    timezone = pytz.timezone("Etc/GMT+3")
    local_time = datetime.now(timezone)
    current_time = local_time.strftime("%I:%M:%S%p")

    time.delete(0, END)
    time.insert(0, current_time)
    time.after(100, update)


root.after(100, update)
root.mainloop()

这应该是一个自动更新时间的东西。我将时间设置为阿拉伯(至少尝试了),您可以编辑时区并将其设置为纽约,或者任何您想要的地方。看看它是如何工作的。

@dorthy如果你想让它准确,你需要使用pytz。更好的答案是: