当前位置: 代码迷 >> python >> 如何将Cookie的GMT格式转换为过期并浮动在Python http.cookiejar.Cookie方法中?
  详细解决方案

如何将Cookie的GMT格式转换为过期并浮动在Python http.cookiejar.Cookie方法中?

热度:116   发布时间:2023-06-14 08:50:44.0

服务器返回的cookie到期时间是“星期二,45年10月17日11:54:07 GMT”,因此当我尝试设置如下cookie时:

ID = Cookie(version=None,name='NAME',value='VALUE',port=None,port_specified=None,domain='.somedomain.com',domain_specified=None,domain_initial_dot=None,path='/',path_specified=None,secure=None,discard=None,comment=None,comment_url=None,rest=None,expires='Tue, 17-Oct-45 11:54:07 GMT')

并引发ValueError:无法将字符串转换为float:'Tue,17-Oct-45 11:54:07 GMT'

那么,如何转换呢?

# quick and easy way
from dateutil.parser import parse
from time import mktime

s = 'Tue, 17-Oct-45 11:54:07 GMT'
p = parse(s)
floating_number = mktime(p.timetuple())

请注意,如果以这种方式进行操作,那么您将依靠dateutil的魔术解析器来猜测时间戳字符串是否正确,通常是这样。

如果您知道时间戳记总是要使用相同或几种格式,则只需按照strptime格式( )定义格式并使用

from datetime import datetime
from time import mktime

YOUR_FORMAT = """your format"""

date_string = 'Tue, 17-Oct-45 11:54:07 GMT'

# strip off the timezone here with split or regex, whatever you like

p = datetime.strptime(date_string, YOUR_FORMAT)
floating_number = mktime(p.timetuple())

如果您采用这种方式,则还需要考虑时区。 仅使用dateutil可能很好

  相关解决方案