Python日期时间增量-15分钟?

Python日期时间增量-15分钟?,python,datetime,cookies,bottle,timedelta,Python,Datetime,Cookies,Bottle,Timedelta,我使用的是瓶子框架,我试图设置一个cookie,它将在15分钟内过期,但它从未起作用,我发现问题在于我设置的过期时间 我的问题是我无法使用datetime.timedelta()将当前时间增加15分钟。仅当我提供“days”关键字参数并将其设置为0以外的值时,它才起作用 即: 它是这样工作的: expire_date = datetime.datetime.now() expire_date = expire_date + datetime.timedelta(days=10, seconds=

我使用的是瓶子框架,我试图设置一个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):

我阅读了文档,但不清楚它到底是如何工作的


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

你住在格林威治以西吗

瓶子中的
set\u cookie
函数期望UTC日期时间对象将其转换为字符串,因此不考虑您的时区:

见:

换句话说,如果你把有效期定在上午11:00,那就是格林威治标准时间上午11:00。例如,哥斯达黎加是凌晨3:00

向过期日期添加一天或几天(甚至几个小时)可以解决您的问题,因为
expire\u date
值大于当前GMT时间

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

expire_date = datetime.datetime.utcnow()

秒应该是有效的,你在哪里使用
过期日期
,这可能是个问题吗?我已经用你问的问题更新了问题。请查收。谢谢你的评论。你测试得怎么样?听起来很奇怪,它肯定能工作。你能试着打印出过期日期看看发生了什么吗。另外,如果每次设置
expire\u date
后,我都会用
print(expire\u date)
运行代码,则可以执行
datetime.timedelta(分钟=15)
。因此,您的问题不在
timedelta
,而是在另一个地方。这解决了问题。非常感谢:)我一整天都在想这个。
expire_date = datetime.datetime.now()
expire_date = expire_date + datetime.timedelta(seconds=900)
response.set_cookie("MyCook", "CookieVal", expires=expire_date)
value = value.timetuple()
....
value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value)
expire_date = datetime.datetime.utcnow()