SystemTimeToTzSpecificLocalTime - 如何获取utc偏移量和时区

时间:2010-01-09 15:07:00

标签: .net windows utc timezone systemtime

我需要将utc系统时间转换为本地时间并找到相应的utc偏移量。我也不介意同时获得时区。据我所知,SystemTimeToTzSpecificLocalTime没有返回这些信息。

任何人都有很好的方法来确定UTC偏移量和时区吗?

1 个答案:

答案 0 :(得分:1)

这是一种做法。

`

long int    SBias, SSeconds, LSeconds;

SYSTEMTIME STime,LTime;     SystemTimeToTzSpecificLocalTime(& TZ,& STime,& LTime);

SSeconds = 3600L * STime.wHour + 60L * STime.wMinute + STime.wSecond;
LSeconds = 3600L * LTime.wHour + 60L * LTime.wMinute + LTime.wSecond;

SBias = 60L * (TZ.Bias + TZ.StandardBias);

SSeconds -= SBias;
if (SSeconds < 0) SSeconds += 24L * 3600L;

if (SSeconds == LSeconds)
{
    tmX.tm_isdst = 0;
    StdTime      = true;
}
else
{
    tmX.tm_isdst = 1;
    StdTime      = false;
}

`