Visual Basic viene fornito con una serie di strumenti per l'analisi dei fusi orari . Il tipo di variabile " TimeZoneInfo " consente di definire fusi orari specifici come variabili . Le operazioni consentono di controllare il tempo in questi vari fusi orari e convertire questi tempi per le proprie variabili . Un insieme separato di operazioni di manipolare orari e le date , trovare la differenza tra le due volte che hai definito dai diversi fusi orari . Istruzioni
1
Creare un programma Visual Basic dalla seguente codice di Microsoft alla lista del vostro registro di fuso orario ID :
Importazioni System.Collections.ObjectModel
Imports System . globalizzazione
Imports System.IO
Module Esempio
Public Sub Main ( ) per
Const OutputFileName As String = " C : \\ Temp \\ TimeZoneInfo.txt "
Dim poichè i ReadOnlyCollection (di TimeZoneInfo ) = TimeZoneInfo.GetSystemTimeZones ( ) per
Dim sw Come StreamWriter = New StreamWriter ( OutputFileName , False ) per
Per ogni fuso orario Come TimeZoneInfo in fusi orari
Dim hasDST As Boolean = timeZone.SupportsDaylightSavingTime
Dim offsetFromUtc Come TimeSpan = timeZone.BaseUtcOffset
Dim adjustRules () As
System.TimeZoneInfo.AdjustmentRule < p > Dim offsetString As String
sw.WriteLine ( " ID : {0}" , timeZone.Id ) per
sw.WriteLine ( "Nome visualizzato : { 0 , 40 } " , Fuso orario . DisplayName ) per
sw.WriteLine ( " Nome standard : { 0 , 39 }" , timeZone.StandardName ) per
sw.Write ( " Daylight Nome : { 0 , 39 } " , Fuso orario . DaylightName ) per
sw.Write ( IIF ( hasDST , " *** dispone ", " *** non dispone " ) ) per
sw.WriteLine ( " Daylight Saving Time ** * " ) per
offsetString = String.Format ( " { 0 } ore , {1} minuti " , offsetFromUtc.Hours , offsetFromUtc.Minutes ) per
sw.WriteLine ( " Offset da UTC : { 0 , 40 } " , offsetString )
adjustRules = timeZone.GetAdjustmentRules ( ) per
sw.WriteLine ( " Numero delle regole di regolazione : { 0 , 26 } " , adjustRules.Length )
Se adjustRules.Length > 0 Then
sw.WriteLine ( " regole di regolazione :")
per ogni regola Come TimeZoneInfo.AdjustmentRule In adjustRules
dim transTimeStart Come TimeZoneInfo.TransitionTime = rule.DaylightTransitionStart
dim transTimeEnd Come TimeZoneInfo.TransitionTime = rule.DaylightTransitionEnd
sw.WriteLine ( " da { 0 } di { 1 } " , rule.DateStart , rule.DateEnd ) per
sw.WriteLine ( "Delta : {0}" , rule.DaylightDelta ) per
Se Non transTimeStart.IsFixedDateRule
sw.WriteLine ( " Begins a { 0 : t } su { 1 } di {2} settimana di { 3 } " , transTimeStart.TimeOfDay , _
transTimeStart.DayOfWeek , _
transTimeStart.Week , _ < br
MonthName > ( transTimeStart.Month ) ) per
sw.WriteLine ( " Ritorna al { 0 : t } di {1 } di {2} settimana di { 3 }" , transTimeEnd.TimeOfDay , _ < br
transTimeEnd.DayOfWeek > , _
transTimeEnd.Week , _
MonthName ( transTimeEnd.Month ) ) per
Else
sw.WriteLine ( " Inizia a { 0 : t } su { 1 } { 2}" , transTimeStart.TimeOfDay , _
transTimeStart.Day , _
MonthName ( transTimeStart.Month ) ) per
sw.WriteLine ( " Ritorna al { 0 : t } su { 1 } { 2}" , transTimeEnd.TimeOfDay , _
transTimeEnd.Day , _
MonthName ( transTimeEnd. mese ) ) per
End If
Avanti
End If
Avanti
sw.Close ( ) economici 2
Creare il seguente programma di Visual Basic :
Public Shared Sub ( ) Meno
Dim timeZone1 Come TimeZoneInfo
timeZone1 = TimeZoneInfo.FindSystemTimeZoneByID ( " Pacific Standard Time " ) per
Dim timeZone2 Come TimeZoneInfo
timeZone2 = TimeZoneInfo.FindSydtemTimeZoneByID ( " Mountain standard Time " ) per
Dim differenza As Long = DateDiff ( DateInterval.Hour , 1stTimeZone.StandardTime , 2ndTimeZone.StandardTime ) per
Console.WriteLine (differenza)
3
Sostituire " Pacific Standard Time " con il primo fuso orario che si desidera confrontare , avendo cura di riprodurre esattamente l' ID dalla lista dal passo 1.
4
Sostituire " Mountain standard Time" con il secondo fuso orario che si desidera confrontare .
5
eseguire il programma.