【问题标题】:Python get time at specify GMTPython 在指定的 GMT 获取时间
【发布时间】:2021-09-11 21:48:58
【问题描述】:

我正在尝试获取特定 GMT 的当前时间(例如 +3 -1 等)。我有一个在远程服务器上运行的脚本,他需要更新我在 time_zone 列表中找不到的另一个国家的当前时间。我试过了

import pytz
pytz.all_timezones

然后查找国家并在列表中找到它;我知道县 GMT 是 +3。

import datetime 
from django.utils.timezone import now

这两个 now 函数都与我相关,我无法找到如何使用 GMT +3 找到 now 函数

【问题讨论】:

    标签: python django datetime gmt


    【解决方案1】:

    获取本地化时间的一种方法是通过timezone.localtime

    import pytz
    from django.utils import timezone
    
    timezone.localtime(timezone=pytz.timezone('Asia/Jerusalem'))
    

    如果您已经有一个日期时间对象,您可以使用datetime.astimezone 或再次使用timezone.localtime

    import pytz
    from django.utils import timezone
    
    now = timezone.now()
    
    now.astimezone(pytz.timezone('Asia/Jerusalem'))
    timezone.localtime(now, pytz.timezone('Asia/Jerusalem'))
    

    如果要获取机器的本地时区,可以运行以下命令。但是,我相信没有什么神奇的,必须适当配置服务器才能使其正常工作。

    import time
    import pytz
    from django.utils import timezone
    
    timezone.localtime(timezone=pytz.timezone(time.tzname[0]))
    

    我已经在我可以访问的 AWS EC2 上尝试了 tn,它只设置了 UTC,因此指定所需的时区仍然主要取决于您。

    【讨论】:

    • 问题是我的国家不在列表中,所以无法选择,正在寻找一个通用的解决方案
    • 好吧,这是通用的解决方案,只需将时区名称替换为正确的名称即可。那是哪个国家的?
    • 检查更新的答案。这有帮助吗? @摇晃
    • Isreal 目前,但我需要我的脚本使用通用时区,因为一些脚本将在 GMT +5 ect 运行
    • 时区是“亚洲/耶路撒冷”。国家名称通常不包含在时区名称中,并且不明确考虑哪个城市(例如,在我的国家:微软使用伯尔尼,Unix 衍生产品使用苏黎世)。
    猜你喜欢
    • 2011-07-11
    • 2010-10-05
    • 2011-05-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2011-07-20
    • 2018-02-12
    相关资源
    最近更新 更多