我正在代理服务器中实现缓存。我正在从请求的响应中存储Expires:字段,如果相同的请求到来,下次我会将Expires时间与当前时间进行比较。 现在我被困在这里。我应该如何将Expire时间格式转换为秒然后采取差异? 这有什么其他方法来获得时差吗?
过期时间的格式为:
Sat, 10 Nov 2012 07:05:26 GMT
假设我有两次,如何在GMT?
答案 0 :(得分:1)
这是一个有效的例子:
#include <stdio.h>
#include <time.h>
int main(int argc, char **argv) {
struct tm t;
time_t seconds;
const char *expire = "Sat, 10 Nov 2012 07:05:25 GMT";
strptime(expire, "%a, %d %B %Y %H:%M:%S", &t);
seconds = mktime(&t);
printf("%lu\n", seconds);
}
请注意,您的时间必须是GMT时间,因为strptime()会忽略时区(至少在Linux上)。您可能还需要将语言环境设置为用于输入时间的相同语言环境。
答案 1 :(得分:0)