Dela via


Anvisningar: Skapa tidszoner utan justeringsregler

Den exakta tidszonsinformation som krävs av ett program kanske inte finns i ett visst system av flera skäl:

  • Tidszonen har aldrig definierats i det lokala systemets register.

  • Data om tidszonen har ändrats eller tagits bort från registret.

  • Tidszonen finns men har inte korrekt information om tidszonsjusteringar för en viss historisk period.

I dessa fall kan du anropa CreateCustomTimeZone metoden för att definiera den tidszon som krävs av ditt program. Du kan använda överlagringarna för den här metoden för att skapa en tidszon med eller utan justeringsregler. Om tidszonen stöder sommartid kan du definiera justeringar med antingen fasta eller flytande justeringsregler. (Definitioner av dessa termer finns i avsnittet "Tidszonsterminologi" i Översikt över tidszon.)

Viktigt!

Anpassade tidszoner som skapas genom att anropa CreateCustomTimeZone metoden läggs inte till i registret. I stället kan de endast nås via objektreferensen som returneras av metodanropet CreateCustomTimeZone .

Det här avsnittet visar hur du skapar en tidszon utan justeringsregler. Information om hur du skapar en tidszon som stöder regler för sommartidsjustering finns i Så här skapar du tidszoner med justeringsregler.

Skapa en tidszon utan justeringsregler

  1. Definiera tidszonens visningsnamn.

    Visningsnamnet följer ett ganska standardformat där tidszonens förskjutning från UTC (Coordinated Universal Time) omges av parenteser och följs av en sträng som identifierar tidszonen, en eller flera av städerna i tidszonen eller ett eller flera av länderna eller regionerna i tidszonen.

  2. Definiera namnet på tidszonens standardtid. Vanligtvis används den här strängen också som tidszonens identifierare.

  3. Om du vill använda en annan identifierare än tidszonens standardnamn definierar du tidszonsidentifieraren.

  4. Instansiera ett TimeSpan objekt som definierar tidszonens förskjutning från UTC. Tidszoner med tider som är senare än UTC har en positiv förskjutning. Tidszoner med tider som är tidigare än UTC har en negativ förskjutning.

  5. TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) Anropa metoden för att instansiera den nya tidszonen.

Exempel

I följande exempel definieras en anpassad tidszon för Mawson, Antarktis, som inte har några justeringsregler.

string displayName = "(GMT+06:00) Antarctica/Mawson Time";
string standardName = "Mawson Time";
TimeSpan offset = new TimeSpan(06, 00, 00);
TimeZoneInfo mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName);
Console.WriteLine("The current time is {0} {1}",
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, mawson),
                  mawson.StandardName);
Dim displayName As String = "(GMT+06:00) Antarctica/Mawson Time"
Dim standardName As String = "Mawson Time"
Dim offset As TimeSpan = New TimeSpan(06, 00, 00)
Dim mawson As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
Console.WriteLine("The current time is {0} {1}", _
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, mawson), _
                  mawson.StandardName)

Strängen DisplayName som tilldelats egenskapen följer ett standardformat där tidszonens förskjutning från UTC följs av en egen beskrivning av tidszonen.

Kompilera koden

Det här exemplet kräver:

  • Att följande namnområden importeras:

    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    
    Imports System.Collections.Generic
    Imports System.Collections.ObjectModel
    
    

Se även