时间差 时区 UTC时间 time()、mktime()的问题。
YFY 2006-06-22 10:12:15
time()获取自1970年1月1日 0点0分0秒 至当前时间经历的秒数,使用了UTC时间。
mktime()函数则返回自1970年1月1日 0点0分0秒至传入参数之间经历的秒数。
问题:
1 不论设在什么时区,这2个函数返回的秒数总比实际的小28800秒,这是为何?
验证的方式:
设时区0,设时间2006.06.22 12:00:00,调用time()和mktime(),获得long型结果;
设时区1,设时间2006.06.22 12:00:00,调用time()和mktime(),获得long型结果;
设时区2,设时间2006.06.22 12:00:00,调用time()和mktime(),获得long型结果;
...
设时区8,设时间2006.06.22 12:00:00,调用time()和mktime(),获得long型结果;
直接计算 2个时间相差的秒数,可以用vb的datadiff函数,与上述计算的结果不一致。
2 time()和mktime()的返回结果与时区相关吗?
3 现在需要使用c/c++得到自1970年1月1日 0点0分0秒至现在当地时间(local time)所经历
的正确秒数,有没有其他一次性正确的函数,不需要加减或其它处理?