vc++获得UTC时间

注意:在VC6.0中不支持TzSpecificLocalTimeToSystemTime

error C2065: 'TzSpecificLocalTimeToSystemTime' : undeclared identifier

 

--------------------------------------------------------------------------------------------------------------------

摘自http://blog.csdn.net/wklnewlife/article/details/8060455:

百度文库中有篇文章说明了UTC时间和本地时间。

即: UTC + 时区差 = 本地时间

所以就有:

1。获得本地时间

SYSTEMTIME localTime = { 0 };
GetLocalTime(&localTime );

 

2。获得时间区域

 TIME_ZONE_INFORMATION TimeZoneInfo;
 GetTimeZoneInformation( &TimeZoneInfo );

 

结构 TIME_ZONE_INFORMATION

中Bias字段除以-60表示所在时间区

例如:中华人民共和国则TimeZoneInfo.Bias = -480;

(TimeZoneInfo.Bias/ -60));

所以表示在+8区(东八区)

/*说明*/

 

3.在微软API中有这样一个函数

BOOL WINAPI TzSpecificLocalTimeToSystemTime(
  __in_opt  LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
  __in      LPSYSTEMTIME lpLocalTime,
  __out     LPSYSTEMTIME lpUniversalTime
);

即可获得UTC时间。

 --------------------------------------------------------------------------------------------------------------------

 

 

例子:

 

// UTC时间.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include 

int _tmain(int argc, _TCHAR* argv[])
{
	SYSTEMTIME localTime = {0};
	SYSTEMTIME universalTime = {0};
	GetLocalTime(&localTime);
	TIME_ZONE_INFORMATION timeZoneinfo;
	GetTimeZoneInformation(&timeZoneinfo);
	TzSpecificLocalTimeToSystemTime(&timeZoneinfo, &localTime, &universalTime);

	return 0;
}


 

你可能感兴趣的:(C/C++)