Visual Basic est livré avec un certain nombre d'outils pour l'analyse des fuseaux horaires. Le type de variable " TimeZoneInfo " vous permet de définir des fuseaux horaires spécifiques comme variables . Opérations vous permettent de contrôler le temps dans ces différents fuseaux horaires et de convertir ces temps de leurs propres variables . Un ensemble distinct des opérations manipuler dates et heures , trouver la différence entre les deux fois que vous avez définies dans les différents fuseaux horaires. Instructions
1
créer un programme Visual Basic à partir du code Microsoft suivante pour afficher le fuseau horaire identifiants de votre base de registre :
importations System.Collections.ObjectModel
System Imports. La mondialisation
Imports System.IO
Module Exemple
public Sub Main ()
Const OutputFileName As String = "C: \\ Temp \\ TimeZoneInfo.txt "
fuseaux horaires As ReadOnlyCollection (sur TimeZoneInfo ) = TimeZoneInfo.GetSystemTimeZones ()
sw As StreamWriter = New StreamWriter ( OutputFileName , Faux )
Chaque fuseauHoraire Comme TimeZoneInfo Fuseaux horaires dans
hasDST As Boolean = timeZone.SupportsDaylightSavingTime
offsetFromUtc As TimeSpan = timeZone.BaseUtcOffset
adjustRules Dim () As System.TimeZoneInfo.AdjustmentRule
< p> offsetString Dim As String
sw.WriteLine ( " ID: {0}" , timeZone.Id )
sw.WriteLine ("Nom d'affichage: {0, 40 }", fuseauHoraire . DisplayName )
sw.WriteLine ( " nom standard: {0, 39 }", timeZone.StandardName )
sw.Write ("Nom d'été: {0, 39 }", fuseauHoraire . DaylightName )
sw.Write (IIF ( hasDST , " *** A ", " *** n'a pas de« ) )
sw.WriteLine (« heure d' ** * ")
offsetString = String.Format ( " {0} heures , {1} minutes " , offsetFromUtc.Hours , offsetFromUtc.Minutes )
sw.WriteLine ( " Décalage de l'UTC : {0, 40 } ", offsetString )
adjustRules = timeZone.GetAdjustmentRules ()
sw.WriteLine ( " Nombre de règles d'ajustement : {0, 26 } ", adjustRules.Length )
Si adjustRules.Length > 0 Then
sw.WriteLine ( «Règles d'ajustement :")
pour chaque règle Comme TimeZoneInfo.AdjustmentRule En adjustRules
Dim transTimeStart Comme TimeZoneInfo.TransitionTime = rule.DaylightTransitionStart
transTimeEnd As TimeZoneInfo.TransitionTime = rule.DaylightTransitionEnd
sw.WriteLine ( " Du {0} {1 }", rule.DateStart , rule.DateEnd )
sw.WriteLine ( " Delta: {0}" , rule.DaylightDelta )
If Not transTimeStart.IsFixedDateRule
sw.WriteLine ( "Begins à {0 : t} sur {1} de la semaine {2} de {3} " , transTimeStart.TimeOfDay , _
transTimeStart.DayOfWeek , _
transTimeStart.Week , _ < br >
MonthName ( transTimeStart.Month ) )
sw.WriteLine ( «Fins à {0: t} sur {1} de la semaine {2} de {3}" , transTimeEnd.TimeOfDay , _
transTimeEnd.DayOfWeek , _
transTimeEnd.Week , _
MonthName ( transTimeEnd.Month ) )
Else
sw.WriteLine ( "commence à {0 : t} sur {1} { 2}" , transTimeStart.TimeOfDay , _
transTimeStart.Day , _
MonthName ( transTimeStart.Month ) )
sw.WriteLine ( " termine à {0 : t} sur {1} { 2}" , transTimeEnd.TimeOfDay , _
transTimeEnd.Day , _
MonthName ( transTimeEnd. mois ) )
End If
Suivant
End If
Suivant
sw.Close ()
2
créer le programme Visual Basic suivant :
public Shared Sub ( ) Main
timeZone1 As TimeZoneInfo
timeZone1 = TimeZoneInfo.FindSystemTimeZoneByID ( «Pacific Standard Time " )
timeZone2 As TimeZoneInfo
timeZone2 = TimeZoneInfo.FindSydtemTimeZoneByID (« heure normale des Rocheuses »)
différence As long = DateDiff ( DateInterval.Hour , 1stTimeZone.StandardTime , 2ndTimeZone.StandardTime )
Console.WriteLine ( différence )
3
Remplacer «Pacific Standard Time » avec le premier fuseau horaire que vous voulez comparer , en prenant soin de reproduire exactement l'ID de la liste de l'étape 1 .
4
Remplacer " heure normale des Rocheuses " avec le second fuseau horaire que vous voulez comparer .
5
exécuter le programme.