我该怎样把我收到的无时区的utc时间转换成对应的本地时间?

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

杨魅力
浏览 140回答 1
1回答

哔哔one

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;}
打开App,查看更多内容
随时随地看视频慕课网APP