【问题标题】:Timezone getting removed in python flask时区在 python 烧瓶中被删除
【发布时间】: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

【问题讨论】:

    标签: python flask pytz


    【解决方案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'>
      

      【讨论】:

      • 这使它成为一个字符串类型。我希望把它作为一个时间对象。我正在对时差进行一些计算。
      • 我刚刚更新了我的答案。你可以看看这个是否适合你。
      猜你喜欢
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多