如何在 Python3 中本地化日期时间 [重复]

Posted

技术标签:

【中文标题】如何在 Python3 中本地化日期时间 [重复]【英文标题】:How to localize datetime in Python3 [duplicate] 【发布时间】: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))) 【参考方案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

以上是关于如何在 Python3 中本地化日期时间 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Javascript中将日期转换为其他时区[重复]

如何将本地日期转换为 GMT [重复]

在 iPhone OS4 SDK 中设置重复本地通知的结束日期

针对特定日期重复本地通知 iOS 10

ios重复本地通知

如果当前日期时间超过预定日期时间,如何删除本地通知?