Python日期时间增量15分钟?

2024-04-25 06:42:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是瓶子框架,我试图设置一个cookie,它将在15分钟内过期,但它从来没有起作用,我发现问题在于我设置的过期时间。在

我的问题是我不能让datetime.timedelta()将当前时间增加15分钟。只有当我提供“days”关键字参数并将其设置为0以外的值时,它才起作用。在

即:

它是这样工作的:

expire_date = datetime.datetime.now()
expire_date = expire_date + datetime.timedelta(days=10, seconds=900)
response.set_cookie("MyCook", "CookieVal", expires=expire_date)

以下内容不起作用(未创建或更新cookie):

^{pr2}$

或者

expire_date = datetime.datetime.now()
expire_date = expire_date + datetime.timedelta(seconds=900)
response.set_cookie("MyCook", "CookieVal", expires=expire_date)

我看过文件,但不清楚这到底是怎么回事。在

https://docs.python.org/2/library/datetime.html#datetime.timedelta

有人能帮我弄清楚吗?提前谢谢。在


Tags: 瓶子datetimedatecookieresponse时间daysnow
1条回答
网友
1楼 · 发布于 2024-04-25 06:42:14

你住在格林威治以西吗?在

来自bottle的set_cookie函数要求UTC datetime对象将它们转换为字符串,因此不考虑您的时区:

https://github.com/bottlepy/bottle/blob/master/bottle.py#L1729

value = value.timetuple()
....
value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value)

换句话说,如果你把到期日设定在上午11:00,那就是格林尼治标准时间上午11:00,比如哥斯达黎加的3:00。在

将过期日期增加一天或多天(甚至几个小时)可以解决您的问题,因为expire_date值将大于当前GMT时间。在

解决此问题的正确方法是使用当前GMT时间而不是本地当前时间:

^{pr2}$

相关问题 更多 >