|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Visual Basic Locale/Regionalization
Routines GetTimeZoneInformation: Locale Standard and Daylight Time Zone Names |
||
Posted: | Sunday April 08, 2001 | |
Updated: | Monday December 26, 2011 | |
Applies to: | VB4-32, VB5, VB6 | |
Developed with: | VB5, Windows 2000 | |
OS restrictions: | None | |
Author: | VBnet - Randy Birch, Chip Pearson, Bob Butler | |
Related: |
SetLocaleInfo: Change System Long and Short Date Formats WM_TIMECHANGE: Detect System Changes to the Date/Time RegQueryValueEx: Identify Time Zones by Time Zone Bias EnumDateFormats: Regional Locale Date Settings EnumTimeFormats: Regional Locale Time Settings GetLocaleInfo: Regional Locale Date Settings |
|
Prerequisites |
None. |
|
Two
simple functions that return only the names for the local daylight and standard zones.
Based on newsgroup postings by Bob Butler and Excel MVP Chip Pearson. |
BAS Module Code |
None. |
|
Form Code |
Add a label (Label1) for the current date, a command button (Command1) and two text boxes (Text1 - Text2) to a form. Other labels are optional. Add the following code: |
|
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2011 VBnet/Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Distribution: You can freely use this code in your own ' applications, but you may not reproduce ' or publish this code on any web site, ' online service, or distribute as source ' on any media without express permission. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Const TIME_ZONE_ID_UNKNOWN As Long = 1 Private Const TIME_ZONE_ID_STANDARD As Long = 1 Private Const TIME_ZONE_ID_DAYLIGHT As Long = 2 Private Const TIME_ZONE_ID_INVALID As Long = &HFFFFFFFF 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 'unicode (0-based) StandardDate As SYSTEMTIME StandardBias As Long DaylightName(0 To 63) As Byte 'unicode (0-based) DaylightDate As SYSTEMTIME DaylightBias As Long End Type Private Declare Function GetTimeZoneInformation Lib "kernel32" _ (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long Private Sub Form_Load() Command1.Caption = "Get Time Zone Names" End Sub Private Sub Command1_Click() Label1.Caption = Format$(Now, "long date") Text1.Text = GetStandardName() Text2.Text = GetDaylightName() End Sub Private Function GetDaylightName() As String Dim tzi As TIME_ZONE_INFORMATION Dim tmp As String Call GetTimeZoneInformation(tzi) tmp = tzi.DaylightName GetDaylightName = TrimNull(tmp) End Function Private Function GetStandardName() As String Dim tzi As TIME_ZONE_INFORMATION Dim tmp As String Call GetTimeZoneInformation(tzi) tmp = tzi.StandardName GetStandardName = TrimNull(tmp) End Function Private Function TrimNull(item As String) Dim pos As Integer 'double check that there is a chr$(0) in the string pos = InStr(item, Chr$(0)) If pos Then TrimNull = Left$(item, pos - 1) Else TrimNull = item End If End Function |
Comments |
|
|
|
|||||
|
|||||
|
|||||
Copyright ©1996-2011 VBnet and Randy Birch. All Rights Reserved. |