Sdílet prostřednictvím


Postupy: Vytváření časových pásem bez pravidel úpravy

Přesné informace o časovém pásmu, které aplikace vyžaduje, nemusí být přítomny v určitém systému z několika důvodů:

  • Časové pásmo nebylo nikdy definováno v registru místního systému.

  • Data o časovém pásmu byla změněna nebo odebrána z registru.

  • Časové pásmo existuje, ale nemá přesné informace o úpravách časového pásma pro určité historické období.

V těchto případech můžete volat metodu CreateCustomTimeZone pro definování časového pásma vyžadovaného vaší aplikací. Přetížení této metody můžete použít k vytvoření časového pásma s pravidly úprav nebo bez této metody. Pokud časové pásmo podporuje letní čas, můžete definovat úpravy pomocí pevných nebo plovoucích pravidel úprav. (Definice těchto termínů najdete v části Terminologie časového pásma v části Přehled časového pásma.)

Důležité

Vlastní časová pásma vytvořená voláním CreateCustomTimeZone metody nejsou přidána do registru. Místo toho lze k nim přistupovat pouze prostřednictvím odkazu na objekt vrácený voláním CreateCustomTimeZone metody.

Toto téma ukazuje, jak vytvořit časové pásmo bez pravidel úprav. Chcete-li vytvořit časové pásmo, které podporuje pravidla úpravy letního času, přečtěte si článek Postupy: Vytvoření časových pásem s pravidly úprav.

Vytvoření časového pásma bez pravidel úprav

  1. Definujte zobrazovaný název časového pásma.

    Zobrazovaný název se řídí poměrně standardním formátem, ve kterém je posun časového pásma od koordinovaného univerzálního času (UTC) uzavřený do závorek a následuje řetězec, který identifikuje časové pásmo, jedno nebo více měst v časovém pásmu nebo jednu nebo více zemí nebo oblastí v časovém pásmu.

  2. Definujte název standardního času časového pásma. Tento řetězec se obvykle používá také jako identifikátor časového pásma.

  3. Pokud chcete použít jiný identifikátor než standardní název časového pásma, definujte identifikátor časového pásma.

  4. Vytvořte instanci objektu TimeSpan , který definuje posun časového pásma od času UTC. Časová pásma s časy pozdějšími než UTC mají kladný posun. Časová pásma s časy dřívějšími než UTC mají záporný posun.

  5. TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) Voláním metody vytvořte instanci nového časového pásma.

Příklad

Následující příklad definuje vlastní časové pásmo pro Mawson, Antarktidu, která nemá žádná pravidla úpravy.

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)

Řetězec přiřazený k DisplayName vlastnosti se řídí standardním formátem, ve kterém je posun časového pásma od UTC následovaný popisem časového pásma.

Zkompilování kódu

Tento příklad vyžaduje:

  • Importují se následující obory názvů:

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

Viz také