TimeZoneInfo.CreateCustomTimeZone Metoda

Definicja

Definiuje strefę czasową, która nie została znaleziona na komputerze lokalnym.

Przeciążenia

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Tworzy niestandardową strefę czasową z określonym identyfikatorem, przesunięciem z uniwersalnego czasu koordynowanego (UTC), nazwą wyświetlaną, nazwą standardową, nazwą czasu letniego, regułami czasu letniego i wartością wskazującą, czy zwracany obiekt odzwierciedla informacje o czasie letnim.

CreateCustomTimeZone(String, TimeSpan, String, String)

Tworzy niestandardową strefę czasową z określonym identyfikatorem, przesunięciem z uniwersalnego czasu koordynowanego (UTC), nazwą wyświetlaną i nazwą wyświetlaną w czasie standardowym.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Tworzy niestandardową strefę czasową z określonym identyfikatorem, przesunięciem z uniwersalnego czasu koordynowanego (UTC), nazwą wyświetlaną, nazwą czasową standardową, nazwą czasu letniego i regułami czasu letniego.

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Tworzy niestandardową strefę czasową z określonym identyfikatorem, przesunięciem z uniwersalnego czasu koordynowanego (UTC), nazwą wyświetlaną, nazwą standardową, nazwą czasu letniego, regułami czasu letniego i wartością wskazującą, czy zwracany obiekt odzwierciedla informacje o czasie letnim.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules, bool disableDaylightSavingTime);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules, bool disableDaylightSavingTime);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] * bool -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule(), disableDaylightSavingTime As Boolean) As TimeZoneInfo

Parametry

id
String

Identyfikator strefy czasowej.

baseUtcOffset
TimeSpan

TimeSpan Obiekt reprezentujący różnicę czasu między tą strefą czasową a uniwersalnym czasem koordynowanym (UTC).

displayName
String

Nazwa wyświetlana nowej strefy czasowej.

standardDisplayName
String

Nazwa godziny standardowej nowej strefy czasowej.

daylightDisplayName
String

Nazwa czasu letniego nowej strefy czasowej.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Tablica TimeZoneInfo.AdjustmentRule obiektów, które rozszerzają podstawowe przesunięcie UTC dla określonego okresu.

disableDaylightSavingTime
Boolean

true aby odrzucić wszelkie informacje dotyczące czasu letniego związane adjustmentRules z nowym obiektem; w przeciwnym razie false.

Zwraca

Nowa strefa czasowa. disableDaylightSavingTime Jeśli parametr ma truewartość , zwracany obiekt nie ma danych czasu letniego.

Wyjątki

Parametr id ma wartość null.

Parametr id jest pustym ciągiem ("").

-lub-

Parametr baseUtcOffset nie reprezentuje całkowitej liczby minut.

Parametr baseUtcOffset jest dłuższy niż 14 godzin lub krótszy niż -14 godzin.

Reguły korekty określone w parametrze adjustmentRules nakładają się na siebie.

-lub-

Reguły korekty określone w parametrze adjustmentRules nie są w kolejności chronologicznej.

-lub-

Co najmniej jeden element w pliku adjustmentRules to null.

-lub-

Data może mieć zastosowanie do niej wielu reguł korekty.

-lub-

Suma parametru baseUtcOffset i DaylightDelta wartości co najmniej jednego obiektu w adjustmentRules tablicy jest większa niż 14 godzin lub mniejsza niż -14 godzin.

Przykłady

Poniższy przykład tworzy niestandardową strefę czasową dla stacji Palmer i wyspy Anvers na Antarktydzie. Ustawia disableDaylightSavingTime parametr w wywołaniu TimeZoneInfo.CreateCustomTimeZone metody na true. Następnie wyświetla nową nazwę czasu letniego strefy czasowej, jeśli jest obecna, oraz liczbę reguł korekty w celu potwierdzenia, że nowa strefa czasowa nie ma informacji o czasie letnim.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0),
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1,3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), 
                                      DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Standard Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
// Create custom time zone without copying DST information
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, 
                                                  daylightName, adjustments, true);
// Indicate whether new time zone//s adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", 
                  palmer.StandardName, 
                  ! (string.IsNullOrEmpty(palmer.DaylightName)) ?  "(" + palmer.DaylightName + ") ": "" , 
                  palmer.GetAdjustmentRules().Length);
// Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1,3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Standard Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
// Create custom time zone without copying DST information
let palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, true)
// Indicate whether time zone//s adjustment rules are present
printfn $"""{palmer.StandardName} {if String.IsNullOrEmpty palmer.DaylightName then "" else "(" + palmer.DaylightName + ")"}has {palmer.GetAdjustmentRules().Length} adjustment rules."""
// Indicate whether time zone supports DST
printfn $"{palmer.StandardName} supports DST: {palmer.SupportsDaylightSavingTime}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim displayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments, True)
' Indicate whether new time zone's adjustment rules are present
Console.WriteLine("{0} {1}has {2} adjustment rules.", _
                  palmer.StandardName, _
                  IIf(Not String.IsNullOrEmpty(palmer.DaylightName), "(" & palmer.DaylightName & ") ", ""), _
                  palmer.GetAdjustmentRules().Length)
' Indicate whether new time zone supports DST
Console.WriteLine("{0} supports DST: {1}", palmer.StandardName, palmer.SupportsDaylightSavingTime)

Uwagi

Tego przeciążenia metody można użyć do utworzenia niestandardowej TimeZoneInfo.CreateCustomTimeZone strefy czasowej, której obsługa czasu letniego może być określona przez warunki w czasie wykonywania.

W poniższej tabeli przedstawiono relację między parametrami dostarczonymi do TimeZoneInfo.CreateCustomTimeZone metody a elementami członkowskimi TimeZoneInfo obiektu, które są zwracane przez wywołanie metody.

CreateCustomTimeZone , parametr Właściwość TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName if disableDaylightSavingTime is false; String.Empty if disableDaylightSavingTime to true.
adjustmentRules Tablica TimeZoneInfo.AdjustmentRule obiektów zwracanych przez metodę GetAdjustmentRules if disableDaylightSavingTime jest false; pusta tablica zwrócona przez metodę GetAdjustmentRules , jeśli disableDaylightSavingTime jest true.
disableDaylightSavingTime Nie SupportsDaylightSavingTime.

Zazwyczaj nazwa standardowego czasu strefy czasowej i jej identyfikator są takie same. Jednak długość identyfikatora strefy czasowej nie powinna przekraczać 32 znaków. Ciąg przekazany do parametru displayName jest zgodny z dość standardowym formatem. Pierwszą częścią nazwy wyświetlanej jest przesunięcie podstawowe strefy czasowej z uniwersalnego czasu koordynowanego, który jest wskazywany przez akronim GMT (dla Greenwich Mean Time), ujęty w nawiasy. Następuje po nim ciąg, który identyfikuje samą strefę czasową lub co najmniej jedno miasto, regiony lub kraje w strefie czasowej lub oba te elementy. Na przykład:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Reguły korekty strefy czasowej są definiowane przez wykonanie następujących czynności:

  1. CreateFloatingDateRule Wywołanie metody lub CreateFixedDateRule w celu zdefiniowania reguł przejścia początkowego i końcowego dla każdej reguły korekty.

  2. Wywoływanie CreateAdjustmentRule metody dla każdej reguły korekty.

  3. Przypisywanie reguł korekty do tablicy, którą można przekazać jako adjustmentRules parametr.

Jeśli disableDaylightSavingTime parametr ma falsewartość , operacja tej metody jest identyczna TimeZoneInfo.CreateCustomTimeZone z przeciążeniem. Jeśli disableDaylightSavingTime parametr ma truewartość , zwracany obiekt nie zawiera żadnych reguł korekty i DaylightName właściwość, której wartość jest pustym ciągiem.

Zobacz też

Dotyczy

CreateCustomTimeZone(String, TimeSpan, String, String)

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Tworzy niestandardową strefę czasową z określonym identyfikatorem, przesunięciem z uniwersalnego czasu koordynowanego (UTC), nazwą wyświetlaną i nazwą wyświetlaną w czasie standardowym.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName);
static member CreateCustomTimeZone : string * TimeSpan * string * string -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String) As TimeZoneInfo

Parametry

id
String

Identyfikator strefy czasowej.

baseUtcOffset
TimeSpan

Obiekt reprezentujący różnicę czasu między tą strefą czasową a uniwersalnym czasem koordynowanym (UTC).

displayName
String

Nazwa wyświetlana nowej strefy czasowej.

standardDisplayName
String

Nazwa czasu standardowego nowej strefy czasowej.

Zwraca

Nowa strefa czasowa.

Wyjątki

Parametr id ma wartość null.

Parametr id jest pustym ciągiem ("").

-lub-

Parametr baseUtcOffset nie reprezentuje całkowitej liczby minut.

Parametr baseUtcOffset jest dłuższy niż 14 godzin lub krótszy niż -14 godzin.

Przykłady

Poniższy przykład tworzy niestandardową strefę czasową dla regionów Mawson i Holme Bay na Antarktydzie. Następnie wyświetla wynik konwersji czasu lokalnego na czas w nowej strefie czasowej.

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);
let displayName = "(GMT+06:00) Antarctica/Mawson Time"
let standardName = "Mawson Time" 
let offset = TimeSpan(06, 00, 00)
let mawson = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName)
printfn $"The current time is {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)

Uwagi

To przeciążenie CreateCustomTimeZone(String, TimeSpan, String, String) metody jest odpowiednie do tworzenia strefy czasowej, która nie ma korekt (czyli strefy czasowej, która nie obsługuje czasu letniego). Aby zdefiniować strefę czasową obejmującą korekty czasu letniego, użyj TimeZoneInfo.CreateCustomTimeZone metody lub TimeZoneInfo.CreateCustomTimeZone .

W poniższej tabeli przedstawiono relację między parametrami podanymi w metodzie TimeZoneInfo.CreateCustomTimeZone i właściwościami TimeZoneInfo obiektu, które są zwracane przez wywołanie metody.

CreateCustomTimeZone , parametr Właściwość TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

Zazwyczaj nazwa standardowego czasu strefy czasowej i jej identyfikator są takie same. Jednak długość identyfikatora strefy czasowej nie powinna przekraczać 32 znaków. Ciąg przekazany do parametru displayName jest zgodny z dość standardowym formatem. Pierwszą częścią nazwy wyświetlanej jest przesunięcie podstawowe strefy czasowej z uniwersalnego czasu koordynowanego, który jest wskazywany przez akronim GMT (dla Greenwich Mean Time), ujęty w nawiasy. Następuje po nim ciąg, który identyfikuje samą strefę czasową lub co najmniej jedno miasto, regiony lub kraje w strefie czasowej lub oba te elementy. Na przykład:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Zobacz też

Dotyczy

CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Tworzy niestandardową strefę czasową z określonym identyfikatorem, przesunięciem z uniwersalnego czasu koordynowanego (UTC), nazwą wyświetlaną, nazwą czasową standardową, nazwą czasu letniego i regułami czasu letniego.

public:
 static TimeZoneInfo ^ CreateCustomTimeZone(System::String ^ id, TimeSpan baseUtcOffset, System::String ^ displayName, System::String ^ standardDisplayName, System::String ^ daylightDisplayName, cli::array <TimeZoneInfo::AdjustmentRule ^> ^ adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName, string? daylightDisplayName, TimeZoneInfo.AdjustmentRule[]? adjustmentRules);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName, string daylightDisplayName, TimeZoneInfo.AdjustmentRule[] adjustmentRules);
static member CreateCustomTimeZone : string * TimeSpan * string * string * string * TimeZoneInfo.AdjustmentRule[] -> TimeZoneInfo
Public Shared Function CreateCustomTimeZone (id As String, baseUtcOffset As TimeSpan, displayName As String, standardDisplayName As String, daylightDisplayName As String, adjustmentRules As TimeZoneInfo.AdjustmentRule()) As TimeZoneInfo

Parametry

id
String

Identyfikator strefy czasowej.

baseUtcOffset
TimeSpan

Obiekt reprezentujący różnicę czasu między tą strefą czasową a uniwersalnym czasem koordynowanym (UTC).

displayName
String

Nazwa wyświetlana nowej strefy czasowej.

standardDisplayName
String

Nazwa czasu standardowego nowej strefy czasowej.

daylightDisplayName
String

Nazwa czasu letniego nowej strefy czasowej.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

Tablica, która rozszerza podstawowe przesunięcie UTC dla określonego okresu.

Zwraca

TimeZoneInfo Obiekt reprezentujący nową strefę czasową.

Wyjątki

Parametr id ma wartość null.

Parametr id jest pustym ciągiem ("").

-lub-

Parametr baseUtcOffset nie reprezentuje całkowitej liczby minut.

Parametr baseUtcOffset jest dłuższy niż 14 godzin lub krótszy niż -14 godzin.

Reguły korekty określone w parametrze adjustmentRules nakładają się na siebie.

-lub-

Reguły korekty określone w parametrze adjustmentRules nie są w kolejności chronologicznej.

-lub-

Co najmniej jeden element w pliku adjustmentRules to null.

-lub-

Data może mieć zastosowanie do niej wielu reguł korekty.

-lub-

Suma parametru baseUtcOffset i DaylightDelta wartości co najmniej jednego obiektu w adjustmentRules tablicy jest większa niż 14 godzin lub mniejsza niż -14 godzin.

Przykłady

Poniższy przykład tworzy niestandardową strefę czasową dla stacji Palmer i wyspy Anvers na Antarktydzie. Następnie konwertuje czas lokalny na czas w nowej strefie czasowej i wyświetla wynik.

// Define transition times to/from DST
TimeZoneInfo.TransitionTime startTransition, endTransition;
startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 4, 0, 0), 
                                                                  10, 2, DayOfWeek.Sunday); 
endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 
                                                                3, 2, DayOfWeek.Sunday);
// Define adjustment rule
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition);
// Create array for adjustment rules
TimeZoneInfo.AdjustmentRule[] adjustments = {adjustment};
// Define other custom time zone arguments
string displayName = "(GMT-04:00) Antarctica/Palmer Time";
string standardName = "Palmer Time";
string daylightName = "Palmer Daylight Time";
TimeSpan offset = new TimeSpan(-4, 0, 0);
TimeZoneInfo palmer = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments);
Console.WriteLine("The current time is {0} {1}",  
                  TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer), 
                  palmer.StandardName);
// Define transition times to/from DST
let startTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 4, 0, 0), 10, 2, DayOfWeek.Sunday) 
let endTransition = 
    TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 3, 0, 0), 3, 2, DayOfWeek.Sunday)
// Define adjustment rule
let delta = TimeSpan(1, 0, 0)
let adjustment = 
    TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1999, 10, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition)
// Create array for adjustment rules
let adjustments = [| adjustment |]
// Define other custom time zone arguments
let displayName = "(GMT-04:00) Antarctica/Palmer Time"
let standardName = "Palmer Time"
let daylightName = "Palmer Daylight Time"
let offset = TimeSpan(-4, 0, 0)
let palmer = 
    TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
printfn $"The current time is {TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, palmer)} {palmer.StandardName}"
' Define transition times to/from DST
Dim startTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#04:00:00#, 10, 2, DayOfWeek.Sunday) 
Dim endTransition As TimeZoneInfo.TransitionTime = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#3:00:00#, 3, 2, DayOfWeek.Sunday)
' Define adjustment rule
Dim delta As TimeSpan = New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#10/01/1999#, Date.MaxValue.Date, delta, startTransition, endTransition)
' Create array for adjustment rules
Dim adjustments() As TimeZoneInfo.AdjustmentRule = {adjustment}
' Define other custom time zone arguments
Dim DisplayName As String = "(GMT-04:00) Antarctica/Palmer Time"
Dim standardName As String = "Palmer Standard Time"
Dim daylightName As String = "Palmer Daylight Time"
Dim offset As TimeSpan = New TimeSpan(-4, 0, 0)
Dim palmer As TimeZoneInfo = TimeZoneInfo.CreateCustomTimeZone(standardName, offset, displayName, standardName, daylightName, adjustments)
Console.WriteLine("The current time is {0} {1}", _ 
                  TimeZoneInfo.ConvertTime(Date.Now, TimeZoneInfo.Local, palmer), _
                  palmer.StandardName)

Uwagi

To przeciążenie TimeZoneInfo.CreateCustomTimeZone metody jest odpowiednie do tworzenia strefy czasowej, która obsługuje czas letni. Aby zdefiniować strefę czasową, która nie obsługuje czasu letniego, użyj TimeZoneInfo.CreateCustomTimeZone metody lub TimeZoneInfo.CreateCustomTimeZone .

W poniższej tabeli przedstawiono relację między parametrami dostarczonymi do TimeZoneInfo.CreateCustomTimeZone metody a elementami członkowskimi TimeZoneInfo obiektu, które są zwracane przez wywołanie metody.

CreateCustomTimeZone , parametr Element członkowski TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules Tablica System.TimeZoneInfo.AdjustmentRule obiektów zwracanych przez metodę GetAdjustmentRules .

Zazwyczaj nazwa standardowego czasu strefy czasowej i jej identyfikator są takie same. Jednak długość identyfikatora strefy czasowej nie powinna przekraczać 32 znaków. Ciąg przekazany do parametru displayName jest zgodny z dość standardowym formatem. Pierwszą częścią nazwy wyświetlanej jest przesunięcie podstawowe strefy czasowej z uniwersalnego czasu koordynowanego, który jest wskazywany przez akronim GMT (dla Greenwich Mean Time), ujęty w nawiasy. Następuje po nim ciąg, który identyfikuje samą strefę czasową lub co najmniej jedno miasto, regiony lub kraje w strefie czasowej lub oba te elementy. Na przykład:

(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)

Parametr baseUtcOffset definiuje przesunięcie niestandardowej strefy czasowej z uniwersalnego czasu koordynowanego (UTC) dla wszystkich reguł korekty strefy czasowej. Innymi słowy, model obiektów zakłada, TimeZoneInfo że przesunięcie strefy czasowej od UTC jest stałe przez cały czas trwania strefy czasowej i istnieje niezależnie od określonych reguł korekty. Aby odzwierciedlić strefę czasową, która zmieniła przesunięcie od czasu UTC, należy utworzyć nowy obiekt strefy czasowej.

Reguły korekty strefy czasowej są definiowane przez wykonanie następujących czynności:

  1. CreateFloatingDateRule Wywołanie metody lub CreateFixedDateRule w celu zdefiniowania czasu rozpoczęcia i zakończenia przejścia dla każdej reguły korekty.

  2. Wywoływanie CreateAdjustmentRule metody dla każdej reguły korekty.

  3. Przypisywanie reguł korekty do tablicy, którą można przekazać jako adjustmentRules parametr.

Zobacz też

Dotyczy