Instrukcje: Tworzenie stref czasowych bez reguł korygowania

Dokładne informacje o strefie czasowej wymagane przez aplikację mogą nie być obecne w określonym systemie z kilku powodów:

  • Strefa czasowa nigdy nie została zdefiniowana w rejestrze systemu lokalnego.

  • Dane dotyczące strefy czasowej zostały zmodyfikowane lub usunięte z rejestru.

  • Strefa czasowa istnieje, ale nie ma dokładnych informacji o korektach strefy czasowej dla określonego okresu historycznego.

W takich przypadkach można wywołać metodę CreateCustomTimeZone , aby zdefiniować strefę czasową wymaganą przez aplikację. Za pomocą przeciążeń tej metody można utworzyć strefę czasową z regułami korekt lub bez nich. Jeśli strefa czasowa obsługuje czas letni, można zdefiniować korekty za pomocą reguł regulacji stałych lub zmiennoprzecinkowych. (Aby uzyskać definicje tych terminów, zobacz sekcję "Terminologia strefy czasowej" w temacie Omówienie strefy czasowej).

Ważne

Niestandardowe strefy czasowe utworzone przez wywołanie CreateCustomTimeZone metody nie są dodawane do rejestru. Zamiast tego można uzyskać do nich dostęp tylko za pośrednictwem odwołania do obiektu zwróconego CreateCustomTimeZone przez wywołanie metody.

W tym temacie pokazano, jak utworzyć strefę czasową bez reguł korekty. Aby utworzyć strefę czasową, która obsługuje reguły korekty czasu letniego, zobacz Instrukcje: tworzenie stref czasowych przy użyciu reguł korekty.

Aby utworzyć strefę czasową bez reguł korekty

  1. Zdefiniuj nazwę wyświetlaną strefy czasowej.

    Nazwa wyświetlana jest zgodna z dość standardowym formatem, w którym przesunięcie strefy czasowej z uniwersalnego czasu koordynowanego (UTC) jest ujęte w nawiasy i następuje ciąg, który identyfikuje strefę czasową, co najmniej jedno miasto w strefie czasowej lub co najmniej jeden kraj lub regiony w strefie czasowej.

  2. Zdefiniuj nazwę standardowego czasu strefy czasowej. Zazwyczaj ten ciąg jest również używany jako identyfikator strefy czasowej.

  3. Jeśli chcesz użyć innego identyfikatora niż standardowa nazwa strefy czasowej, zdefiniuj identyfikator strefy czasowej.

  4. TimeSpan Utwórz wystąpienie obiektu definiującego przesunięcie strefy czasowej z czasu UTC. Strefy czasowe z godzinami późniejszymi niż UTC mają dodatnie przesunięcie. Strefy czasowe z godzinami wcześniejszymi niż UTC mają ujemne przesunięcie.

  5. Wywołaj metodę , TimeZoneInfo.CreateCustomTimeZone(String, TimeSpan, String, String) aby utworzyć wystąpienie nowej strefy czasowej.

Przykład

W poniższym przykładzie zdefiniowano niestandardową strefę czasową dla Mawson, Antarktydy, która nie ma reguł korekty.

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)

Ciąg przypisany do DisplayName właściwości jest zgodny ze standardowym formatem, w którym przesunięcie strefy czasowej z utc następuje przyjazny opis strefy czasowej.

Kompilowanie kodu

Ten przykład wymaga:

  • Aby zaimportować następujące przestrzenie nazw:

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

Zobacz też