【问题标题】:How to localize datetime in Python3 [duplicate]如何在 Python3 中本地化日期时间 [重复]
【发布时间】:2020-11-15 03:51:35
【问题描述】:

我在 Python3 中编写了以下代码。

import datetime as dt

a = dt.datetime(2020,7,24,9,0,0)
print(a)

这显示在输出下方。

2020-07-24 09:00:00

但它没有以本地化格式显示。预期输出应如下所述,因为我的时区是“亚洲/加尔各答”。

2020-07-24 09:00:00+05:30

如何做到这一点?

【问题讨论】:

  • 这不是“本地化”,它只是添加了时区信息。本地化将类似于 2020 年 7 月 24 日(假设您的本地会议与美国会议一样疯狂)。
  • a = dt.datetime(2020,7,24,9,0,0, tzinfo=dt.timezone(dt.timedelta(hours=5, minutes=30)))

标签: python python-3.x datetime


【解决方案1】:
import datetime as dt

a = dt.datetime(2020,7,24,9,0,0)
local_time = "+5:30"
print(str(a)+local_time)

输出

2020-07-24 09:00:00+5:30

【讨论】:

    【解决方案2】:

    您可以使用pytz 模块来完成它,进一步本地化它并显示时区,使用模块tzlocal

    pip install pytz tzlocal
    

    代码:

    from datetime import datetime
    from pytz import timezone
    from tzlocal import get_localzone
    
    format = "%Y-%m-%d %H:%M:%S %Z%z"
    # Current time in UTC
    now_utc = datetime.now(timezone('UTC'))
    print(now_utc.strftime(format))
    # Convert to local time zone
    now_local = now_utc.astimezone(get_localzone()) # ie 'Asia/Kolkata'
    print(now_local.strftime(format))
    

    输出:

    2020-07-25 07:05:50 UTC+0000
    2020-07-25 12:35:50 IST+0530
    

    还有详细的答案here

    【讨论】:

    • 我在下面写了代码 a = dt.datetime(2020,7,24,9,0,0, tzinfo=timezone('Asia/Kolkata')) print(a) 输出:2020 -07-24 09:00:00+05:53
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 2011-11-17
    • 2016-08-21
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    相关资源
    最近更新 更多