.net SystemTimeTotzSpecificClocalTime-如何获取utc偏移量和时区

.net SystemTimeTotzSpecificClocalTime-如何获取utc偏移量和时区,.net,windows,utc,timezone,systemtime,.net,Windows,Utc,Timezone,Systemtime,我需要将utc系统时间转换为本地时间,并找到相应的utc偏移量。我也不介意得到时区。据我所知,SystemTimeTotzSpecificClocalTime不返回有关这些的信息 有没有人能很好地确定UTC偏移量和时区?这里有一种方法 ` 系统时间; SystemTimeToTsSpecificClocalTime(&TZ,&STime,<ime) s秒=3600L*时长为+60L*时长为分钟+时长为秒; l秒=3600L*LTime.wHour+60L*LTime.wMinute+LTim

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


有没有人能很好地确定UTC偏移量和时区?

这里有一种方法

`

系统时间; SystemTimeToTsSpecificClocalTime(&TZ,&STime,<ime)

s秒=3600L*时长为+60L*时长为分钟+时长为秒;
l秒=3600L*LTime.wHour+60L*LTime.wMinute+LTime.WS秒;
SBias=60L*(TZ.偏差+TZ.标准偏差);
SSeconds-=SBias;
如果(s秒<0)s秒+=24L*3600L;
如果(秒==秒)
{
tmX.tm_isdst=0;
StdTime=true;
}
其他的
{
tmX.tm_isdst=1;
StdTime=false;
}
`

long int    SBias, SSeconds, LSeconds;
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;
}