时区在 python 烧瓶中被删除
Posted
技术标签:
【中文标题】时区在 python 烧瓶中被删除【英文标题】:Timezone getting removed in python flask 【发布时间】:2021-08-28 20:18:49 【问题描述】:用户登录后,我将会话变量设置为使用 utc 的时间。但时区被剥离。
import datetime
from pytz import timezone
utc = timezone('utc')
session['login_time'] = datetime.datetime.now(utc)
当我在分配后打印时区2021-06-11 23:56:00.161971+00:00
。并且调用了一个装饰器函数。当我打印 session['login_time']
时,时区被删除。 2021-06-11 23:56:00
【问题讨论】:
【参考方案1】:当我需要在另一个函数中使用时间时,我不得不重新添加timezone('utc')
。
def diff_min(t):
utc = timezone('utc')
t = utc.localize(t)
【讨论】:
【参考方案2】:对我来说,我将使用.strftime
帮助格式化日期时间,%Z
用于显示时区。
您可以查看strftime document 来帮助您格式化时间。我将使用此代码替换您原来的代码:
session['login_time'] = datetime.datetime.now(utc).strftime('"%Y-%m-%d %H:%M:%S%Z"')
login_time = datetime.datetime.strptime(session['login_time'],"%Y-%m-%d %H:%M:%S%Z" )
utct = utc.localize(login_time)
print(utct)
print(type(utct))
这是输出:
2021-06-12 01:00:23+00:00
<class 'datetime.datetime'>
【讨论】:
这使它成为一个字符串类型。我希望把它作为一个时间对象。我正在对时差进行一些计算。 我刚刚更新了我的答案。你可以看看这个是否适合你。以上是关于时区在 python 烧瓶中被删除的主要内容,如果未能解决你的问题,请参考以下文章
如何在python烧瓶中获取具有本地时区的模板文件的修改日期
烧瓶/Python:@after_this_request 未被访问