// C++ program to find GetTimeZoneInformation #include #include #include int main() { int ret; /* From MSDN https://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME, *PSYSTEMTIME; From MSDN https://msdn.microsoft.com/en-us/library/windows/desktop/ms725481(v=vs.85).aspx typedef struct _TIME_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[32]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[32]; SYSTEMTIME DaylightDate; LONG DaylightBias; } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION; */ /* From: https://social.msdn.microsoft.com/Forums/vstudio/en-US/8cd25fa0-391e-4677-8c5d-15bbe9d389c9 /reading-timezone-binary-data-from-registry-and-using-it?forum=netfxbcl typedef struct SYSTEMTIME_TZI { wchar wYear; wchar wMonth; wchar wDay; wchar wHour; wchar wMinute; wchar wSecond; wchar wMilliseconds; wchar wDayOfWeek; } typedef struct _TIME_ZONE_INFORMATION { long Bias; char StandardName[32]; SYSTEMTIME StandardDate; long StandardBias; char DaylightName[32]; SYSTEMTIME DaylightDate; long DaylightBias; } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION; */ // Get the timezone info. TIME_ZONE_INFORMATION TimeZoneInfo; ret = GetTimeZoneInformation( &TimeZoneInfo ); printf("GetTimeZoneInformation returns %d,\n", ret); printf("DaylightDate.wYear is '%d'.\n", TimeZoneInfo.DaylightDate.wYear); printf("DaylightDate.wMonth is '%d'.\n", TimeZoneInfo.DaylightDate.wMonth); printf("DaylightDate.wDay is '%d'.\n", TimeZoneInfo.DaylightDate.wDay); printf("DaylightDate.wHour is '%d'.\n", TimeZoneInfo.DaylightDate.wHour); printf("DaylightDate.wMinute is '%d'.\n", TimeZoneInfo.DaylightDate.wMinute); printf("DaylightDate.wSecond is '%d'.\n", TimeZoneInfo.DaylightDate.wSecond); printf("DaylightDate.wMilliseconds is '%d'.\n", TimeZoneInfo.DaylightDate.wMilliseconds); printf("DaylightDate.wDayOfWeek is '%d'.\n", TimeZoneInfo.DaylightDate.wDayOfWeek); printf("StandardDate.wYear is '%d'.\n", TimeZoneInfo.StandardDate.wYear); printf("StandardDate.wMonth is '%d'.\n", TimeZoneInfo.StandardDate.wMonth); printf("StandardDate.wDay is '%d'.\n", TimeZoneInfo.StandardDate.wDay); printf("StandardDate.wHour is '%d'.\n", TimeZoneInfo.StandardDate.wHour); printf("StandardDate.wMinute is '%d'.\n", TimeZoneInfo.StandardDate.wMinute); printf("StandardDate.wSecond is '%d'.\n", TimeZoneInfo.StandardDate.wSecond); printf("StandardDate.wMilliseconds is '%d'.\n", TimeZoneInfo.StandardDate.wMilliseconds); printf("StandardDate.wDayOfWeek is '%d'.\n", TimeZoneInfo.StandardDate.wDayOfWeek); return 0; }