代码之家  ›  专栏  ›  技术社区  ›  user3525290

在python烧瓶中删除时区

  •  1
  • user3525290  · 技术社区  · 5 年前

    用户登录后,我将会话变量设置为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 .然后调用一个decorator函数。当我打印的时候 session['login_time'] 时区被移除。 2021-06-11 23:56:00

    1 回复  |  直到 5 年前
        1
  •  0
  •   Zichzheng    5 年前

    对我来说,我会使用 .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'>
    
        2
  •  0
  •   user3525290    5 年前

    我不得不重新添加 timezone('utc') 当我需要在另一个函数中使用时间时。

    def diff_min(t):
        utc = timezone('utc')
        t = utc.localize(t)
    
    推荐文章