Visual Basic vem com uma série de ferramentas para análise de fusos horários. O " TimeZoneInfo " tipo de variável permite definir fusos horários específicos como variáveis. Operações permitem verificar o tempo nestes vários fusos horários e converter esses momentos para suas próprias variáveis. Um conjunto separado de operações manipular horários e datas , encontrar a diferença entre as duas vezes que você definiu a partir de diferentes fusos horários. Instruções
1
Criar um programa Visual Basic a partir do seguinte código Microsoft para listar as IDs de fuso horário do seu registro :
Importações System.Collections.ObjectModel
System Imports . Globalização
Imports System.IO
Módulo Exemplo
Public Sub Main ()
Const OutputFileName As String = "C: \\ Temp \\ TimeZoneInfo.txt "
Dim timeZones Como ReadOnlyCollection ( Of TimeZoneInfo ) = TimeZoneInfo.GetSystemTimeZones ()
Dim sw Como StreamWriter = New StreamWriter ( OutputFileName , False)
para cada fuso horário, conforme TimeZoneInfo em fusos horários
Dim hasDST As Boolean = timeZone.SupportsDaylightSavingTime
Dim offsetFromUtc Como TimeSpan = timeZone.BaseUtcOffset
Dim adjustRules () As System.TimeZoneInfo.AdjustmentRule
Dim offsetString As String
sw.WriteLine ( " ID: {0}" , timeZone.Id )
sw.WriteLine ( " display Name: { 0, 40 }" , Fuso horário . DisplayName )
sw.WriteLine ( "Nome padrão: {0 , 39 }", timeZone.StandardName )
sw.Write ( " Daylight Nome: {0 , 39 }" , Fuso horário . DaylightName )
sw.Write (IIF ( hasDST , " *** Tem ", " *** Não Tem "))
sw.WriteLine ( " Horário de Verão ** * ")
offsetString = String.Format (" { 0 } horas, {1} minutos ", offsetFromUtc.Hours , offsetFromUtc.Minutes )
sw.WriteLine ( " Deslocamento da UTC : { 0, 40 } ", offsetString )
adjustRules = timeZone.GetAdjustmentRules ()
sw.WriteLine ( " Número de regras de ajuste : {0 , 26 } ", adjustRules.Length )
Se adjustRules.Length > 0 Then
sw.WriteLine ( " regras de ajuste :")
para cada regra Como TimeZoneInfo.AdjustmentRule Em adjustRules
Dim transTimeStart Como TimeZoneInfo.TransitionTime = rule.DaylightTransitionStart
Dim transTimeEnd Como TimeZoneInfo.TransitionTime = rule.DaylightTransitionEnd
sw.WriteLine ( "From {0} para {1 }", rule.DateStart , rule.DateEnd )
sw.WriteLine ( "Delta : {0 }", rule.DaylightDelta )
If Not transTimeStart.IsFixedDateRule
sw.WriteLine ( " Begins em {0 : t} em {1} de semana {2} {3 } ", transTimeStart.TimeOfDay , _
transTimeStart.DayOfWeek , _
transTimeStart.Week , _ < br >
MonthName ( transTimeStart.Month ) )
sw.WriteLine ( " Termina no {0 : t} em {1} de semana {2} {3 }", transTimeEnd.TimeOfDay , _
transTimeEnd.DayOfWeek , _
transTimeEnd.Week , _
MonthName ( transTimeEnd.Month ) )
Else
sw.WriteLine ( " começa em {0 : t} em {1} {2}" , transTimeStart.TimeOfDay , _
transTimeStart.Day , _
MonthName ( transTimeStart.Month ) )
sw.WriteLine ( " Termina no {0 : t} em {1} {2}" , transTimeEnd.TimeOfDay , _
transTimeEnd.Day , _
MonthName ( transTimeEnd. Mês ) )
End If
Próxima
End If
Próxima
sw.Close ()
2
Crie o seguinte programa Visual Basic :
Public Shared Sub ( ) principal
Dim timeZone1 Como TimeZoneInfo
timeZone1 = TimeZoneInfo.FindSystemTimeZoneByID ( " Tempo padrão do Pacífico " )
Dim timeZone2 Como TimeZoneInfo
timeZone2 = TimeZoneInfo.FindSydtemTimeZoneByID ( " mountain Standard Time " )
diferença Dim As Long = DateDiff ( DateInterval.Hour , 1stTimeZone.StandardTime , 2ndTimeZone.StandardTime )
Console.WriteLine ( diferença ),
3
Substituir " hora padrão do Pacífico " com o primeiro fuso horário que você quiser comparar , tendo o cuidado de reproduzir exatamente o ID da lista a partir do Passo 1.
4
Substituir " mountain Standard Time " com o segundo fuso horário que você deseja comparar.
5
Execute o programa .