TimeZoneInfo.CreateCustomTimeZone Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje časové pásmo, které není v místním počítači nalezeno.
Přetížení
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean) |
Vytvoří vlastní časové pásmo se zadaným identifikátorem, posunem od koordinovaného univerzálního času (UTC), zobrazovaným názvem, názvem standardního času, názvem letního času, pravidly letního času a hodnotou, která označuje, zda vrácený objekt odráží informace o letním čase. |
CreateCustomTimeZone(String, TimeSpan, String, String) |
Vytvoří vlastní časové pásmo se zadaným identifikátorem, posunem od koordinovaného univerzálního času (UTC), zobrazovaným názvem a zobrazovaným názvem standardního času. |
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) |
Vytvoří vlastní časové pásmo se zadaným identifikátorem, posunem od koordinovaného univerzálního času (UTC), zobrazovaným názvem, názvem standardního času, názvem letního času a pravidly letního času. |
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
Vytvoří vlastní časové pásmo se zadaným identifikátorem, posunem od koordinovaného univerzálního času (UTC), zobrazovaným názvem, názvem standardního času, názvem letního času, pravidly letního času a hodnotou, která označuje, zda vrácený objekt odráží informace o letním čase.
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
Identifikátor časového pásma.
- baseUtcOffset
- TimeSpan
Objekt TimeSpan , který představuje časový rozdíl mezi tímto časovým pásmem a koordinovaným univerzálním časem (UTC).
- displayName
- String
Zobrazovaný název nového časového pásma
- standardDisplayName
- String
Standardní časový název nového časového pásma.
- daylightDisplayName
- String
Název nového časového pásma pro letní čas.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Pole TimeZoneInfo.AdjustmentRule objektů, které rozšiřují základní posun UTC pro určité období.
- disableDaylightSavingTime
- Boolean
true
zahodí všechny informace související s letním časem, které jsou součástí adjustmentRules
nového objektu, jinak false
.
Návraty
Nové časové pásmo.
disableDaylightSavingTime
Pokud je true
parametr , vrácený objekt neobsahuje žádná data letního času.
Výjimky
Parametr id
je null
.
Parametr id
je prázdný řetězec ("").
-nebo-
Parametr baseUtcOffset
nepředstavuje celý počet minut.
Parametr baseUtcOffset
je delší než 14 hodin nebo méně než -14 hodin.
Pravidla úprav zadaná v parametru se adjustmentRules
překrývají.
-nebo-
Pravidla úpravy zadaná v parametru adjustmentRules
nejsou v chronologickém pořadí.
-nebo-
Jeden nebo více prvků v adjustmentRules
souboru je null
.
-nebo-
Pro datum může být použito více pravidel úprav.
-nebo-
Součet parametru baseUtcOffset
a DaylightDelta hodnoty jednoho nebo více objektů v adjustmentRules
poli je větší než 14 hodin nebo méně než -14 hodin.
Příklady
Následující příklad vytvoří vlastní časové pásmo pro stanici Palmer a ostrov Anvers v Antarktidě.
disableDaylightSavingTime
Nastaví parametr ve volání metody na TimeZoneInfo.CreateCustomTimeZonetrue
. Zobrazí název nového časového pásma letního času(pokud existuje) a počet pravidel úprav, které potvrdí, že nové časové pásmo neobsahuje žádné informace o letním čase.
// 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)
Poznámky
Toto přetížení TimeZoneInfo.CreateCustomTimeZone metody můžete použít k vytvoření vlastního časového pásma, jehož podpora letního času může být určena podmínkami za běhu.
Následující tabulka ukazuje relaci mezi parametry, které jsou poskytovány metodě TimeZoneInfo.CreateCustomTimeZone a členy objektu TimeZoneInfo , které jsou vráceny voláním metody.
Parametr CreateCustomTimeZone | Vlastnost TimeZoneInfo |
---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName if disableDaylightSavingTime is false ; String.Empty if disableDaylightSavingTime is true . |
adjustmentRules |
Pole objektů vrácených TimeZoneInfo.AdjustmentRule metodou GetAdjustmentRules , pokud disableDaylightSavingTime je false ; prázdné pole vrácené metodou GetAdjustmentRules , pokud disableDaylightSavingTime je true . |
disableDaylightSavingTime |
Není SupportsDaylightSavingTime. |
Název standardního času časového pásma a jeho identifikátor jsou obvykle stejné. Délka identifikátoru časového pásma by však neměla překročit 32 znaků. Řetězec předaný parametru displayName
má poměrně standardní formát. První část zobrazovaného názvu udává základní posun časového pásma vůči koordinovanému světovému času označovanému zkratkou GMT (greenwichský střední čas), uvedený v závorkách. Následuje řetězec, který identifikuje samotné časové pásmo nebo jedno nebo více měst, oblastí nebo zemí v časovém pásmu, případně obojí. Příklad:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Pravidla úprav časového pásma se definují takto:
Voláním metody CreateFloatingDateRule nebo CreateFixedDateRule definujete počáteční a koncová pravidla přechodu pro každé pravidlo úpravy.
CreateAdjustmentRule Volání metody pro každé pravidlo úpravy.
Přiřazení pravidel úprav k poli, které lze předat jako
adjustmentRules
parametr.
Pokud disableDaylightSavingTime
je false
parametr , operace této metody je identická s přetížením TimeZoneInfo.CreateCustomTimeZone . Pokud disableDaylightSavingTime
je true
, vrácený objekt neobsahuje žádná pravidla úprav a DaylightName vlastnost, jejíž hodnota je prázdný řetězec.
Viz také
- Postupy: Vytváření časových pásem bez pravidel úpravy
- Postupy: Vytváření časových pásem s pravidly úpravy
Platí pro
CreateCustomTimeZone(String, TimeSpan, String, String)
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
Vytvoří vlastní časové pásmo se zadaným identifikátorem, posunem od koordinovaného univerzálního času (UTC), zobrazovaným názvem a zobrazovaným názvem standardního času.
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
Identifikátor časového pásma.
- baseUtcOffset
- TimeSpan
Objekt, který představuje časový rozdíl mezi tímto časovým pásmem a koordinovaným univerzálním časem (UTC).
- displayName
- String
Zobrazovaný název nového časového pásma
- standardDisplayName
- String
Název standardního času nového časového pásma.
Návraty
Nové časové pásmo.
Výjimky
Parametr id
je null
.
Parametr id
je prázdný řetězec ("").
-nebo-
Parametr baseUtcOffset
nepředstavuje celý počet minut.
Parametr baseUtcOffset
je delší než 14 hodin nebo méně než -14 hodin.
Příklady
Následující příklad vytvoří vlastní časové pásmo pro oblasti Mawson a Holme Bay v Antarktidě. Zobrazí výsledek převodu místního času na čas v novém časovém pásmu.
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)
Poznámky
Toto přetížení CreateCustomTimeZone(String, TimeSpan, String, String) metody je vhodné pro vytvoření časového pásma, které nemá žádné úpravy (to znamená časové pásmo, které nepodporuje letní čas). Chcete-li definovat časové pásmo, které zahrnuje úpravy letního času, použijte metodu TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone nebo .
Následující tabulka ukazuje relaci mezi parametry, které jsou poskytovány metodě TimeZoneInfo.CreateCustomTimeZone , a vlastnostmi objektu TimeZoneInfo , které jsou vráceny voláním metody.
Parametr CreateCustomTimeZone | Vlastnost TimeZoneInfo |
---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
Název standardního času časového pásma a jeho identifikátor jsou obvykle stejné. Délka identifikátoru časového pásma by však neměla překročit 32 znaků. Řetězec předaný parametru displayName
má poměrně standardní formát. První část zobrazovaného názvu udává základní posun časového pásma vůči koordinovanému světovému času označovanému zkratkou GMT (greenwichský střední čas), uvedený v závorkách. Následuje řetězec, který identifikuje samotné časové pásmo nebo jedno nebo více měst, oblastí nebo zemí v časovém pásmu, případně obojí. Příklad:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Viz také
Platí pro
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
Vytvoří vlastní časové pásmo se zadaným identifikátorem, posunem od koordinovaného univerzálního času (UTC), zobrazovaným názvem, názvem standardního času, názvem letního času a pravidly letního času.
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
Identifikátor časového pásma.
- baseUtcOffset
- TimeSpan
Objekt, který představuje časový rozdíl mezi tímto časovým pásmem a koordinovaným univerzálním časem (UTC).
- displayName
- String
Zobrazovaný název nového časového pásma
- standardDisplayName
- String
Standardní název nového časového pásma
- daylightDisplayName
- String
Název nového časového pásma pro letní čas.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Pole, které rozšiřuje základní posun UTC pro určité období.
Návraty
Objekt TimeZoneInfo , který představuje nové časové pásmo.
Výjimky
Parametr id
je null
.
Parametr id
je prázdný řetězec ("").
-nebo-
Parametr baseUtcOffset
nepředstavuje celý počet minut.
Parametr baseUtcOffset
je delší než 14 hodin nebo méně než -14 hodin.
Pravidla úprav zadaná v parametru se adjustmentRules
překrývají.
-nebo-
Pravidla úpravy zadaná v parametru adjustmentRules
nejsou v chronologickém pořadí.
-nebo-
Jeden nebo více prvků v adjustmentRules
souboru je null
.
-nebo-
Pro datum může být použito více pravidel úprav.
-nebo-
Součet parametru baseUtcOffset
a DaylightDelta hodnoty jednoho nebo více objektů v adjustmentRules
poli je větší než 14 hodin nebo méně než -14 hodin.
Příklady
Následující příklad vytvoří vlastní časové pásmo pro stanici Palmer a ostrov Anvers v Antarktidě. Potom převede místní čas na čas v novém časovém pásmu a zobrazí výsledek.
// 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)
Poznámky
Toto přetížení TimeZoneInfo.CreateCustomTimeZone metody je vhodné pro vytvoření časového pásma, které podporuje letní čas. Chcete-li definovat časové pásmo, které nepodporuje letní čas, použijte metodu TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone nebo .
Následující tabulka ukazuje relaci mezi parametry, které jsou poskytovány metodě TimeZoneInfo.CreateCustomTimeZone a členy objektu TimeZoneInfo , které jsou vráceny voláním metody.
Parametr CreateCustomTimeZone | TimeZoneInfo – člen |
---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName |
adjustmentRules |
Pole objektů vrácených System.TimeZoneInfo.AdjustmentRule metodou GetAdjustmentRules . |
Název standardního času časového pásma a jeho identifikátor jsou obvykle stejné. Délka identifikátoru časového pásma by však neměla překročit 32 znaků. Řetězec předaný parametru displayName
má poměrně standardní formát. První část zobrazovaného názvu udává základní posun časového pásma vůči koordinovanému světovému času označovanému zkratkou GMT (greenwichský střední čas), uvedený v závorkách. Následuje řetězec, který identifikuje samotné časové pásmo nebo jedno nebo více měst, oblastí nebo zemí v časovém pásmu, případně obojí. Příklad:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Parametr baseUtcOffset
definuje posun vlastního časového pásma od koordinovaného univerzálního času (UTC) pro všechna pravidla úpravy časového pásma. Jinými slovy, objektový model předpokládá, TimeZoneInfo že posun časového pásma od času UTC je konstantní po celou dobu životnosti časového pásma a existuje nezávisle na konkrétních pravidlech úpravy. Chcete-li odrážet časové pásmo, které změnilo posun oproti utc, musíte vytvořit nový objekt časového pásma.
Pravidla úprav časového pásma se definují takto:
Voláním metody CreateFloatingDateRule nebo CreateFixedDateRule definovat počáteční a koncový čas přechodu pro každé pravidlo úpravy.
CreateAdjustmentRule Volání metody pro každé pravidlo úpravy.
Přiřazení pravidel úprav k poli, které lze předat jako
adjustmentRules
parametr.