2012-10-11 60 views
0

我正在代理服务器中实现缓存。我从请求的响应中存储Expires:字段,下次如果有相同的请求,我会比较Expires时间和当前时间。 现在我卡在这里。我应该如何将Expire时间格式转换为秒,然后才能有所作为? 是否有其他方式来获得时差?GMT时间到秒

格式期满时间是: Sat, 10 Nov 2012 07:05:26 GMT

假设我有两个时间,我怎么能在GMT?

回答

0

比较两个时间如果实现了它,你可以使用strptime功能到字符串转换到struct tm,然后mktime转换为time_t以便于比较。

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上)的时区。您可能还需要将您的语言环境设置为与您的输入时间相同的语言环境。

+0

你能回答一些问题吗?谢谢。 –

+0

@SebassvanBoxel在线查看'strptime()'函数的描述。 'mktime()'同上。 –