gpt4 book ai didi

python - 将 UTC 日期时间转换为用户的本地日期和时间

转载 作者:太空狗 更新时间:2023-10-30 00:37:24 24 4
gpt4 key购买 nike

我在 Django 和 Google App Engine 上使用 python。我还在我的一个模型中使用 DateTimeProperty。有时我想向用户显示该日期和时间。

将存储在 DateTimeProperty 中的日期时间转换为用户的日期时间的最佳方法是什么?

或者更精确地提出问题:获取客户时区并将 python 日期时间对象转换为他们自己的本地时间的最佳方法是什么?

最佳答案

这更像是一个 Python 问题,而不是 GAE 问题,除非 GAE 有一些基础设施来促进这一点(我已经快速扫描但没有找到任何引用)。

基本上,您想将日期/时间存储在 UTC 时区(例如使用 datetime.datetime.utcnow)以及用户时区,您可以尝试从用户 IP 中提取(使用 GeoDjango,如果在 GAE 上可用,或 pygeoip ; 您需要一些地理定位数据库,例如:http://www.maxmind.com/app/geolitecity ),或明确询问用户 - 其优点是您可以要求提供描述性时区名称,例如“Europe/Warsaw”。如果您只要求 UTC+2,那么您将丢失任何 DST 转换的指示。

然后,您可以使用例如pytz :

import pytz
local_tz = pytz.timezone(timezone_name)
return timestamp_utc.replace(tzinfo=pytz.utc).astimezone(local_tz).replace(tzinfo=None)

-- 其中 timestamp_utc 是要转换的 utc 日期时间,而 timezone_name 是提到的“Europe/Warsaw”。

(请注意,我不知道这些中的哪些在 GAE 中有效,但至少你会知道要寻找什么)

关于python - 将 UTC 日期时间转换为用户的本地日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com