// temp10.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <Windows.h> #include <stdio.h> #include <time.h> int _tmain(int argc, _TCHAR* argv[]) { //宇宙标准时间是格林威治时间。 //为了适应地球上的个个地方人们的生活作息,人们发明了本地时间。 //本地时间,是基于格林威治时间并根据太阳升落修正后的时间。即我们日常生活中所使用到的时间。 //tm和time_t是两种表示时间的格式。表示的是从1900年1月1日0时0分0秒到现在的秒数。 //无论用格林威治时间计算,还是用当地时间计算,时间差秒数都是相同的。 struct tm deviceTime; ZeroMemory(&deviceTime, sizeof(struct tm)); deviceTime.tm_year=2014-1900; deviceTime.tm_mon=1-1; deviceTime.tm_mday=1; deviceTime.tm_hour=8; deviceTime.tm_min=0; deviceTime.tm_sec=0; time_t ti=mktime(&deviceTime); //localtime把tim_t的形式转换为tm的形式。 //此函数只有一个参数,此参数表示的是:从本地时间的1900年1月1日0时0分0秒到本地时间的现在的秒数。 //返回值,表示本地时间秒数的年月日时分秒的格式数据。即localtime内部不会理会当前计算机上设置的时区。 struct tm* newtime=localtime(&ti); printf("%04d-%d-%02d %02d:%02d:%02d\n", newtime->tm_year+1900, newtime->tm_mon+1, newtime->tm_mday, newtime->tm_hour, newtime->tm_min, newtime->tm_sec); //gmtime,同localtime一样,也把tim_t的形式转换为tm的形式。 //此函数也只有一个参数,此参数表示的是:从本地时间的1900年1月1日0时0分0秒到本地时间的现在的秒数。 //返回值,表示的是格林威治时间。即是:根据程序所在的计算机上设置的本地时区,把参数传入的本地时间,转变为格林威治时间。 //例如,本地时间为2014-7-9 08:00:00 转变为格林威治时间(宇宙标准时间)为2014-7-9 00:00:00。 newtime=gmtime(&ti); printf("%04d-%d-%02d %02d:%02d:%02d\n", newtime->tm_year+1900, newtime->tm_mon+1, newtime->tm_mday, newtime->tm_hour, newtime->tm_min, newtime->tm_sec); getchar(); return 0; }
完。
localtime和gmtime,布布扣,bubuko.com
时间: 2024-10-31 00:12:55