问题描述
服务器返回的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'
那么,如何转换呢?
1楼
# 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可能很好