现在我收到了一个时间,该时间是距离1970年1月1日0时0秒的秒数,是无时区的,那么我应该怎样才能把它转换成对应的本地时间?简单的使用localtime吗?我实际使用localtime时出现了中午12:00点时跟踪数据解析为20:00的状况。gmtime转换到的应该不是本地的吧?我看的资料说gmtime转换后应该是格林尼治的。
1 回答

哔哔one
TA贡献1854条经验 获得超8个赞
1、将获取的秒数赋值给一个长整型变量t;
2、然后声明c语言中的通用的时间结构体变量,定义它为p;
3、将获取的秒数t转换为这个时间结构体p;
4、然后用localtime函数显示出t的当地时间。
备注:(1)、ctime()和asctime()是格式输出函数,即将获得的时间按规定好的格式给你显示出来,它们两唯一的区别是ctime()的参数是秒数的地址,asctime()参数的地址是时间结构体的指针;(2)、该函数包含于C语言标准库time.h中。
如下:
#include "stdafx.h"
#include <stdio.h>
#include <time.h>
int main(int argc, char* argv[])
{
long t;
struct tm *p;
struct tm *p1;
t=time(NULL);
printf("Now,the time is : %s",ctime(&t));
p=localtime(&t);
p1=gmtime(&t);
printf("\nLocaltime=:%s",asctime(p));
printf("\nGmtime=:%s",asctime(p1));
return 0;
}
添加回答
举报
0/150
提交
取消