Recipe 7.2. Accessing the System's Time Zone
You want to programmatically determine the time-zone offset for the local system's time and determine if daylight savings time is currently in effect.
Sample code folder: Chapter 07 \SystemTimeZone
Use the TimeZone object, which provides properties and methods for determining the name of the current time zone, the number of hours offset from Greenwich Mean Time (GMT), and whether daylight savings is currently in effect.
The following code shows how the TimeZone information is accessed:
Dim theZone As TimeZone = TimeZone.CurrentTimeZone Dim result As New System.Text.StringBuilder result.Append("DaylightName: ").AppendLine( _ theZone.DaylightName) result.Append("StandardName: ").AppendLine( _ theZone.StandardName) result.Append("IsDaylightSavingTime( Now): ").AppendLine( _ theZone.IsDaylightSavingTime(Now)) result.Append("GetUtcOffset(Now): ").AppendLine( _ theZone.GetUtcOffset(Now).ToString) result.Append(" System time is Local Time: ") result.AppendLine(Now.Kind = DateTimeKind.Local) result.Append("System time is Universal Coordinated Time: ") result.AppendLine(Now.Kind = DateTimeKind.Utc) result.Append("System time is Unspecified: ") result.AppendLine(Now.Kind = DateTimeKind.Unspecified) MsgBox(result.ToString())
The TimeZone variable theZone is assigned the current system's time-zone information in the first line of this code. The rest of the lines extract information from this variable and prepare string versions for display by appending to the StringBuilder. The theZone variable lets you determine the name of the time zone, the number of hours that time zone is offset from GMT, and whether daylight savings is currently in effect.
The Kind property determines if a Date represents local time, Coordinated Universal Time (UTC), or is unspecified. This is a property of a Date, not a TimeZone, but the information it provides is closely associated with the TimeZone information.
Figure 7-2 shows the TimeZone information displayed for a computer set to Central Standard Time during the summer.
Figure 7-2. Determining a system's time-zone information