Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Beginner
Jun 26, 1998

Determining time zone setting

Question:
How can I find the Active Time Zone offset from UTC that the computer clock is set to? This value changes when going from Standard to Daylight Savings Time. I have looked in the Win.ini file and my API reference, but can find nothing.

Answer:
You can use the GetTimeZoneInformation API to determine these numbers. You'll need to do some quick calculations, but all the data is available from this one call. Here's enough to get you going:

Option Explicit

Private Declare Function GetTimeZoneInformation _
   Lib "kernel32" (lpTimeZoneInformation As _
   TIME_ZONE_INFORMATION) As Long

Private Type SYSTEMTIME
   wYear As Integer
   wMonth As Integer
   wDayOfWeek As Integer
   wDay As Integer
   wHour As Integer
   wMinute As Integer
   wSecond As Integer
   wMilliseconds As Integer
End Type

Private Type TIME_ZONE_INFORMATION
   Bias As Long
   StandardName(0 To 63) As Byte
   StandardDate As SYSTEMTIME
   StandardBias As Long
   DaylightName(0 To 63) As Byte
   DaylightDate As SYSTEMTIME
   DaylightBias As Long
End Type

Private Sub Form_Click()
   Dim tz As TIME_ZONE_INFORMATION
   
   Call GetTimeZoneInformation(tz)
   Debug.Print "UTC Bias: "; tz.Bias / 60; " hrs."
   Debug.Print " ST Date: "; _
      Format(DateSerial(98, tz.StandardDate.wMonth, 1), "mmmm") & _
      " " & tz.StandardDate.wDay
   Debug.Print " ST Zone: "; CStr(tz.StandardName)
   Debug.Print " ST Bias: "; tz.StandardBias; " mins."
   Debug.Print " DT zone: "; CStr(tz.DaylightName)
   Debug.Print " DT Date: "; _
      Format(DateSerial(98, tz.DaylightDate.wMonth, 1), "mmmm") & _
      " " & tz.DaylightDate.wDay
   Debug.Print " DT Bias: "; tz.DaylightBias; " mins."
End Sub
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date