SystemTimeTotzSpecificLiCalTime - Como obter o deslocamento do UTC e fuso horário
-
19-09-2019 - |
Pergunta
Tenho a necessidade de converter o tempo do sistema UTC para a hora local e encontrar o deslocamento do UTC correspondente. Eu não me importaria de obter o fuso horário também. Até onde eu sei, o SystemTimeToTzSpecificLocalTime não retorna informações sobre isso.
Alguém tem uma boa maneira de determinar o deslocamento do UTC e o fuso horário?
Solução
Aqui está uma maneira de fazer isso.
`
long int SBias, SSeconds, LSeconds;
SystemTime Stime, ltime; SystemTimeTotzSpecificLocalTime (& tz, & stime, <ime);
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;
}
`
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow