>List<TimeZoneProps> oRecs = new List<TimeZoneProps>(); >oRecs.Add(new TimeZoneProps("prop1","prop2","prop3" )); >>
Public aTimeZone(76, 5) As String ' Time zones aTimeZone(1, 1) = "A" aTimeZone(1, 2) = "Alpha Time Zone" aTimeZone(1, 3) = "Military" aTimeZone(1, 4) = "+1" aTimeZone(1, 5) = "0" aTimeZone(2, 1) = "ACDT" aTimeZone(2, 2) = "Australian Central Daylight Time" aTimeZone(2, 3) = "Australia" aTimeZone(2, 4) = "+10" aTimeZone(2, 5) = "30" aTimeZone(3, 1) = "ACST" aTimeZone(3, 2) = "Australian Central Standard Time" aTimeZone(3, 3) = "Australia" aTimeZone(3, 4) = "+9" aTimeZone(3, 5) = "30" aTimeZone(4, 1) = "ADT" aTimeZone(4, 2) = "Atlantic Daylight Time" aTimeZone(4, 3) = "North America" aTimeZone(4, 4) = "-3" aTimeZone(4, 5) = "0" aTimeZone(5, 1) = "AEDT" aTimeZone(5, 2) = "Australian Eastern Daylight Time" aTimeZone(5, 3) = "Australia" aTimeZone(5, 4) = "+11" aTimeZone(5, 5) = "0" aTimeZone(6, 1) = "AEST" aTimeZone(6, 2) = "Australian Eastern Standard Time" aTimeZone(6, 3) = "Australia" aTimeZone(6, 4) = "+10" aTimeZone(6, 5) = "0" aTimeZone(7, 1) = "AKDT" aTimeZone(7, 2) = "Alaska Daylight Time" aTimeZone(7, 3) = "North America" aTimeZone(7, 4) = "-8" aTimeZone(7, 5) = "0" aTimeZone(8, 1) = "AKST" aTimeZone(8, 2) = "Alaska Standard Time" aTimeZone(8, 3) = "North America" aTimeZone(8, 4) = "-9" aTimeZone(8, 5) = "0" aTimeZone(9, 1) = "AST" aTimeZone(9, 2) = "Atlantic Standard Time" aTimeZone(9, 3) = "North America" aTimeZone(9, 4) = "-4" aTimeZone(9, 5) = "0" aTimeZone(10, 1) = "AWST" aTimeZone(10, 2) = "Australian Western Standard Time" aTimeZone(10, 3) = "Australia" aTimeZone(10, 4) = "+8" aTimeZone(10, 5) = "0" aTimeZone(11, 1) = "B" aTimeZone(11, 2) = "Bravo Time Zone" aTimeZone(11, 3) = "Military" aTimeZone(11, 4) = "+2" aTimeZone(11, 5) = "0" aTimeZone(12, 1) = "BST" aTimeZone(12, 2) = "British Summer Time" aTimeZone(12, 3) = "Europe" aTimeZone(12, 4) = "+1" aTimeZone(12, 5) = "0" aTimeZone(12, 1) = "C" aTimeZone(12, 2) = "Charlie Time Zone" aTimeZone(12, 3) = "Military" aTimeZone(12, 4) = "+3" aTimeZone(12, 5) = "0" aTimeZone(13, 1) = "CDT" aTimeZone(13, 2) = "Central Daylight Time" aTimeZone(13, 3) = "Australia" aTimeZone(13, 4) = "+10" aTimeZone(13, 5) = "30" aTimeZone(14, 1) = "CDT" aTimeZone(14, 2) = "Central Daylight Time" aTimeZone(14, 3) = "North America" aTimeZone(14, 4) = "-5" aTimeZone(14, 5) = "0" aTimeZone(14, 1) = "CEST" aTimeZone(14, 2) = "Central European Summer Time" aTimeZone(14, 3) = "Europe" aTimeZone(14, 4) = "+2" aTimeZone(14, 5) = "0" aTimeZone(15, 1) = "CET" aTimeZone(15, 2) = "Central European Time" aTimeZone(15, 3) = "Europe" aTimeZone(15, 4) = "+1" aTimeZone(15, 5) = "0" aTimeZone(16, 1) = "CST" aTimeZone(16, 2) = "Central Standard Time" aTimeZone(16, 3) = "Australia" aTimeZone(16, 4) = "+9" aTimeZone(16, 5) = "30" aTimeZone(17, 1) = "CST" aTimeZone(17, 2) = "Central Standard Time" aTimeZone(17, 3) = "North America" aTimeZone(17, 4) = "-6" aTimeZone(17, 5) = "0" aTimeZone(18, 1) = "CXT" aTimeZone(18, 2) = "Christmas Island Time" aTimeZone(18, 3) = "Australia" aTimeZone(18, 4) = "+7" aTimeZone(18, 5) = "0" aTimeZone(19, 1) = "D" aTimeZone(19, 2) = "Delta Time Zone" aTimeZone(19, 3) = "Military" aTimeZone(19, 4) = "+4" aTimeZone(19, 5) = "0" aTimeZone(20, 1) = "E" aTimeZone(20, 2) = "Echo Time Zone" aTimeZone(20, 3) = "Military" aTimeZone(20, 4) = "+5" aTimeZone(20, 5) = "0" aTimeZone(21, 1) = "EDT" aTimeZone(21, 2) = "Eastern Daylight Time" aTimeZone(21, 3) = "Australia" aTimeZone(21, 4) = "+11" aTimeZone(21, 5) = "0" aTimeZone(22, 1) = "EDT" aTimeZone(22, 2) = "Eastern Daylight Time" aTimeZone(22, 3) = "North America" aTimeZone(22, 4) = "-4" aTimeZone(22, 5) = "0" aTimeZone(23, 1) = "EEST" aTimeZone(23, 2) = "Eastern European Summer Time" aTimeZone(23, 3) = "Europe" aTimeZone(23, 4) = "+3" aTimeZone(23, 5) = "0" aTimeZone(24, 1) = "EET" aTimeZone(24, 2) = "Eastern European Time" aTimeZone(24, 3) = "Europe" aTimeZone(24, 4) = "+2" aTimeZone(24, 5) = "0" aTimeZone(25, 1) = "EST" aTimeZone(25, 2) = "Eastern Standard Time" aTimeZone(25, 3) = "Australia" aTimeZone(25, 4) = "+10" aTimeZone(25, 5) = "0" aTimeZone(26, 1) = "EST" aTimeZone(26, 2) = "Eastern Standard Time" aTimeZone(26, 3) = "North America" aTimeZone(26, 4) = "-5" aTimeZone(26, 5) = "0" aTimeZone(27, 1) = "F" aTimeZone(27, 2) = "Foxtrot Time Zone" aTimeZone(27, 3) = "Military" aTimeZone(27, 4) = "+6" aTimeZone(27, 5) = "0" aTimeZone(28, 1) = "G" aTimeZone(28, 2) = "Golf Time Zone" aTimeZone(28, 3) = "Military" aTimeZone(28, 4) = "+7" aTimeZone(28, 5) = "0" aTimeZone(29, 1) = "GMT" aTimeZone(29, 2) = "Greenwich Mean Time" aTimeZone(29, 3) = "Europe" aTimeZone(29, 4) = "0" aTimeZone(29, 5) = "0" aTimeZone(30, 1) = "H" aTimeZone(30, 2) = "Hotel Time Zone" aTimeZone(30, 3) = "Military" aTimeZone(30, 4) = "+8" aTimeZone(30, 5) = "0" aTimeZone(31, 1) = "HAA" aTimeZone(31, 2) = "Heure Avancée de l'Atlantique" aTimeZone(31, 3) = "North America" aTimeZone(31, 4) = "-3" aTimeZone(31, 5) = "0" aTimeZone(32, 1) = "HAC" aTimeZone(32, 2) = "Heure Avancée du Centre" aTimeZone(32, 3) = "North America" aTimeZone(32, 4) = "-5" aTimeZone(32, 5) = "0" aTimeZone(33, 1) = "HADT" aTimeZone(33, 2) = "Hawaii-Aleutian Daylight Time" aTimeZone(33, 3) = "North America" aTimeZone(33, 4) = "-9" aTimeZone(33, 5) = "0" aTimeZone(34, 1) = "HAE" aTimeZone(34, 2) = "Heure Avancée de l'Est" aTimeZone(34, 3) = "North America" aTimeZone(34, 4) = "-4" aTimeZone(34, 5) = "0" aTimeZone(35, 1) = "HAP" aTimeZone(35, 2) = "Heure Avancée du Pacifique" aTimeZone(35, 3) = "North America" aTimeZone(35, 4) = "-7" aTimeZone(35, 5) = "0" aTimeZone(36, 1) = "HAR" aTimeZone(36, 2) = "Heure Avancée des Rocheuses" aTimeZone(36, 3) = "North America" aTimeZone(36, 4) = "-6" aTimeZone(36, 5) = "0" aTimeZone(37, 1) = "HAST" aTimeZone(37, 2) = "Hawaii-Aleutian Standard Time" aTimeZone(37, 3) = "North America" aTimeZone(37, 4) = "-10" aTimeZone(37, 5) = "0" aTimeZone(38, 1) = "HAT" aTimeZone(38, 2) = "Heure Avancée de Terre-Neuve" aTimeZone(38, 3) = "North America" aTimeZone(38, 4) = "-2" aTimeZone(38, 5) = "-30" aTimeZone(39, 1) = "HAY" aTimeZone(39, 2) = "Heure Avancée du Yukon North" aTimeZone(39, 3) = "America" aTimeZone(39, 4) = "-8" aTimeZone(39, 5) = "-0" aTimeZone(40, 1) = "HNA" aTimeZone(40, 2) = "Heure Normale de l'Atlantique" aTimeZone(40, 3) = "North America" aTimeZone(40, 4) = "-4" aTimeZone(40, 5) = "-0" aTimeZone(41, 1) = "HNC" aTimeZone(41, 2) = "Heure Normale du Centre" aTimeZone(41, 3) = "North America" aTimeZone(41, 4) = "-6" aTimeZone(41, 5) = "-0" aTimeZone(42, 1) = "HNE" aTimeZone(42, 2) = "Heure Normale de l'Est" aTimeZone(42, 3) = "North America" aTimeZone(42, 4) = "-5" aTimeZone(42, 5) = "-0" aTimeZone(43, 1) = "HNP" aTimeZone(43, 2) = "Heure Normale du Pacifique" aTimeZone(43, 3) = "North America" aTimeZone(43, 4) = "-8" aTimeZone(43, 5) = "-0" aTimeZone(44, 1) = "HNR" aTimeZone(44, 2) = "Heure Normale des Rocheuses" aTimeZone(44, 3) = "North America" aTimeZone(44, 4) = "-7" aTimeZone(44, 5) = "-0" aTimeZone(45, 1) = "HNT" aTimeZone(45, 2) = "Heure Normale de Terre-Neuve" aTimeZone(45, 3) = "North America" aTimeZone(45, 4) = "-3" aTimeZone(45, 5) = "-30" aTimeZone(46, 1) = "HNY" aTimeZone(46, 2) = "Heure Normale du Yukon" aTimeZone(46, 3) = "North America" aTimeZone(46, 4) = "-9" aTimeZone(46, 5) = "0" aTimeZone(47, 1) = "I" aTimeZone(47, 2) = "India Time Zone" aTimeZone(47, 3) = "Military" aTimeZone(47, 4) = "+9" aTimeZone(47, 5) = "0" aTimeZone(48, 1) = "IST" aTimeZone(48, 2) = "Irish Summer Time" aTimeZone(48, 3) = "Europe" aTimeZone(48, 4) = "+1" aTimeZone(48, 5) = "0" aTimeZone(49, 1) = "K" aTimeZone(49, 2) = "Kilo Time Zone" aTimeZone(49, 3) = "Military" aTimeZone(49, 4) = "+10" aTimeZone(49, 5) = "0" aTimeZone(49, 1) = "L" aTimeZone(49, 2) = "Lima Time Zone" aTimeZone(49, 3) = "Military" aTimeZone(49, 4) = "+11" aTimeZone(49, 5) = "0" aTimeZone(50, 1) = "M" aTimeZone(50, 2) = "Mike Time Zone" aTimeZone(50, 3) = "Military" aTimeZone(50, 4) = "+12" aTimeZone(50, 5) = "0" aTimeZone(51, 1) = "MDT" aTimeZone(51, 2) = "Mountain Daylight Time" aTimeZone(51, 3) = "North America" aTimeZone(51, 4) = "-6" aTimeZone(51, 5) = "0" aTimeZone(52, 1) = "MESZ" aTimeZone(52, 2) = "Mitteleuropäische Sommerzeit" aTimeZone(52, 3) = "Europe" aTimeZone(52, 4) = "+2" aTimeZone(52, 5) = "0" aTimeZone(53, 1) = "MEZ" aTimeZone(53, 2) = "Mitteleuropäische Zeit" aTimeZone(53, 3) = "Europe" aTimeZone(53, 4) = "+1" aTimeZone(53, 5) = "0" aTimeZone(54, 1) = "MST" aTimeZone(54, 2) = "Mountain Standard Time" aTimeZone(54, 3) = "North America" aTimeZone(54, 4) = "-7" aTimeZone(54, 5) = "0" aTimeZone(55, 1) = "N" aTimeZone(55, 2) = "November Time Zone" aTimeZone(55, 3) = "Military" aTimeZone(55, 4) = "-1" aTimeZone(55, 5) = "0" aTimeZone(56, 1) = "NDT" aTimeZone(56, 2) = "Newfoundland Daylight Time" aTimeZone(56, 3) = "North America" aTimeZone(56, 4) = "-2" aTimeZone(56, 5) = "-30" aTimeZone(57, 1) = "NFT" aTimeZone(57, 2) = "Norfolk (Island) Time" aTimeZone(57, 3) = "Australia" aTimeZone(57, 4) = "+11" aTimeZone(57, 5) = "30" aTimeZone(58, 1) = "NST" aTimeZone(58, 2) = "Newfoundland Standard Time" aTimeZone(58, 3) = "North America" aTimeZone(58, 4) = "-3" aTimeZone(58, 5) = "-30" aTimeZone(59, 1) = "O" aTimeZone(59, 2) = "Oscar Time Zone" aTimeZone(59, 3) = "Military" aTimeZone(59, 4) = "-2" aTimeZone(59, 5) = "0" aTimeZone(60, 1) = "P" aTimeZone(60, 2) = "Papa Time Zone" aTimeZone(60, 3) = "Military" aTimeZone(60, 4) = "-3" aTimeZone(60, 5) = "0" aTimeZone(61, 1) = "PDT" aTimeZone(61, 2) = "Pacific Daylight Time" aTimeZone(61, 3) = "North America" aTimeZone(61, 4) = "-7" aTimeZone(61, 5) = "0" aTimeZone(62, 1) = "PST" aTimeZone(62, 2) = "Pacific Standard Time" aTimeZone(62, 3) = "North America" aTimeZone(62, 4) = "-8" aTimeZone(62, 5) = "0" aTimeZone(63, 1) = "Q" aTimeZone(63, 2) = "Quebec Time Zone" aTimeZone(63, 3) = "Military" aTimeZone(63, 4) = "-4" aTimeZone(63, 5) = "0" aTimeZone(64, 1) = "R" aTimeZone(64, 2) = "Romeo Time Zone" aTimeZone(64, 3) = "Military" aTimeZone(64, 4) = "-5" aTimeZone(64, 5) = "0" aTimeZone(65, 1) = "S" aTimeZone(65, 2) = "Sierra Time Zone" aTimeZone(65, 3) = "Military" aTimeZone(65, 4) = "-6" aTimeZone(65, 5) = "0" aTimeZone(66, 1) = "T" aTimeZone(66, 2) = "Tango Time Zone" aTimeZone(66, 3) = "Military" aTimeZone(66, 4) = "-7" aTimeZone(66, 5) = "0" aTimeZone(67, 1) = "U" aTimeZone(67, 2) = "Uniform Time Zone" aTimeZone(67, 3) = "Military" aTimeZone(67, 4) = "-8" aTimeZone(67, 5) = "0" aTimeZone(68, 1) = "UTC" aTimeZone(68, 2) = "Coordinated Universal Time" aTimeZone(68, 3) = "Europe" aTimeZone(68, 4) = "0" aTimeZone(68, 5) = "0" aTimeZone(69, 1) = "V" aTimeZone(69, 2) = "Victor Time Zone" aTimeZone(69, 3) = "Military" aTimeZone(69, 4) = "-9" aTimeZone(69, 5) = "0" aTimeZone(70, 1) = "W" aTimeZone(70, 2) = "Whiskey Time Zone" aTimeZone(70, 3) = "Military" aTimeZone(70, 4) = "-10" aTimeZone(70, 5) = "0" aTimeZone(71, 1) = "WEST" aTimeZone(71, 2) = "Western European Summer Time" aTimeZone(71, 3) = "Europe" aTimeZone(71, 4) = "+1" aTimeZone(71, 5) = "0" aTimeZone(72, 1) = "WET" aTimeZone(72, 2) = "Western European Time" aTimeZone(72, 3) = "Europe" aTimeZone(72, 4) = "0" aTimeZone(72, 5) = "0" aTimeZone(73, 1) = "WST" aTimeZone(73, 2) = "Western Standard Time" aTimeZone(73, 3) = "Australia" aTimeZone(73, 4) = "+8" aTimeZone(73, 5) = "0" aTimeZone(74, 1) = "X" aTimeZone(74, 2) = "-ray Time Zone" aTimeZone(74, 3) = "Military" aTimeZone(74, 4) = "-11" aTimeZone(74, 5) = "0" aTimeZone(75, 1) = "Y" aTimeZone(75, 2) = "Yankee Time Zone" aTimeZone(75, 3) = "Military" aTimeZone(75, 4) = "-12" aTimeZone(75, 5) = "0" aTimeZone(76, 1) = "Z" aTimeZone(76, 2) = "Zulu Time Zone" aTimeZone(76, 3) = "Military" aTimeZone(76, 4) = "0" aTimeZone(76, 5) = "0" ' Return a date in a string format to a date time ' expC1 Date in the string format ' RFC 822: Thu, 02 May 2004 08:50:03 PDT ' RFC 1123: Thu, 2 May 2004 08:50:03 PDT Public Function UTCToDateTime(ByVal tcDate As String) As Date Dim lcCr As String = Chr(13) Dim lcDateToConvert As String = "" Dim lcFirstDigit As String = "" Dim lcFirstPart As String = "" Dim lcSecondDigit As String = "" Dim lcSecondPart As String = "" Dim lcTimeZone As String = "" Dim ldConverted As Date = Nothing Dim ldLocal As Date = Nothing Dim ldUTC As Date = Nothing Dim llFound As Boolean = False Dim lnAbbreviation As Integer = 0 Dim lnCounter As Integer = 0 Dim lnDay As Integer = 0 Dim lnHour As Integer = 0 Dim lnMinute As Integer = 0 Dim lnMonth As Integer = 0 Dim lnSecond As Integer = 0 Dim lnToUTCHour As Integer = 0 Dim lnToUTCMinute As Integer = 0 Dim lnYear As Integer = 0 lcDateToConvert = tcDate ' Get the timezone lcTimeZone = Mid(lcDateToConvert, oApp.RAt(" ", lcDateToConvert) + 1) ' Find the timezone For lnCounter = 1 To 76 If oApp.aTimeZone(lnCounter, 1) = lcTimeZone Then llFound = True lnToUTCHour = Val(oApp.aTimeZone(lnCounter, 4)) lnToUTCMinute = Val(oApp.aTimeZone(lnCounter, 5)) End If Next ' Just in case If Not llFound Then Return oApp.GetEmptyDate() End If lcFirstPart = Mid(lcDateToConvert, oApp.At(" ", lcDateToConvert, 3) + 1) lcSecondPart = Mid(lcDateToConvert, 9, oApp.At(" ", lcDateToConvert, 3) - 9) lcFirstDigit = Mid(lcDateToConvert, 6, 1) lcSecondDigit = Mid(lcDateToConvert, 7, 1) ' If RFC 1123 If Trim(lcSecondDigit).Length = 0 Then lcSecondPart = Mid(lcDateToConvert, 8, oApp.At(" ", lcDateToConvert, 3) - 8) End If lnYear = Val(Mid(lcFirstPart, 1, 4)) ' Find the month llFound = False For lnCounter = 1 To 12 If UCase(oApp.aMonth(lnCounter, 1)) = UCase(lcSecondPart) Then llFound = True lnMonth = lnCounter End If Next ' Just in case If Not llFound Then Return oApp.GetEmptyDate() End If lnDay = Val(Mid(lcDateToConvert, 6)) lnHour = Val(Mid(lcDateToConvert, oApp.At(" ", lcDateToConvert, 4) + 1)) lnMinute = Val(Mid(lcDateToConvert, oApp.At(" ", lcDateToConvert, 4) + 4)) lnSecond = Val(Mid(lcDateToConvert, oApp.At(" ", lcDateToConvert, 4) + 7)) ldConverted = New Date(lnYear, lnMonth, lnDay, lnHour, lnMinute, lnSecond) ' UTC converion applied to converted DateTime as seconds, just in case ' the change results in a date change. Applying the change above, might ' result in invalid hours and minutes (i.e. negative values or values ' greater than 23 (for hours) or 59 (for minutes). ldUTC = ldConverted.AddHours(lnToUTCHour) ldUTC = ldUTC.AddMinutes(lnToUTCMinute) ldLocal = ldUTC.AddHours(4) Return ldLocal End Function