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.
|