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í
| Name | Description |
|---|---|
| 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, standardním názvem času, názvem letního času, pravidly letního času a hodnotou, která označuje, jestli 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 standardním zobrazovaným názvem č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, standardním názvem č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
- 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, standardním názvem času, názvem letního času, pravidly letního času a hodnotou, která označuje, jestli 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í 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
truezahození veškerých informací souvisejících s letním časem, které jsou přítomné v adjustmentRules novém objektu, jinak . false
Návraty
Nové časové pásmo.
disableDaylightSavingTime Pokud je trueparametr , vrácený objekt nemá žádná data o letním č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 větší než 14 hodin nebo kratší než -14 hodin.
Pravidla úprav zadaná v parametru adjustmentRules se překrývají.
nebo
Pravidla úpravy zadaná v parametru adjustmentRules nejsou v chronologickém pořadí.
nebo
Jeden nebo více prvků jsou adjustmentRulesnull.
nebo
Datum může obsahovat několik pravidel úpravy.
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í TimeZoneInfo.CreateCustomTimeZone metody na true. Potom zobrazí název nového časového pásma letního času, pokud je k dispozici, a počet pravidel úprav pro potvrzení, ž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 vztah mezi parametry, které jsou k dispozici metodě TimeZoneInfo.CreateCustomTimeZone , a členy objektu TimeZoneInfo , které jsou vráceny voláním metody.
| CreateCustomTimeZone – parametr | TimeZoneInfo – vlastnost |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightNamepokud je ; String.Empty pokud disableDaylightSavingTimedisableDaylightSavingTime je truefalse. |
adjustmentRules |
Pole TimeZoneInfo.AdjustmentRule objektů vrácených metodou GetAdjustmentRules pokud disableDaylightSavingTime je false; prázdné pole vrácené metodou GetAdjustmentRules , pokud disableDaylightSavingTime je true. |
disableDaylightSavingTime |
Ne SupportsDaylightSavingTime. |
Standardní název časového pásma a jeho identifikátor jsou obvykle stejné. Délka identifikátoru časového pásma by ale neměla překročit 32 znaků. Řetězec předaný parametru displayName se řídí poměrně standardním formátem. První část zobrazovaného názvu je základní posun časového pásma od koordinovaného univerzálního času, který je označen zkratkou GMT (pro Greenwich Střední čas) uzavřenou 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 nebo obojí. Napří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 jsou definována následujícím způsobem:
Voláním CreateFloatingDateRule metody nebo CreateFixedDateRule metody definujete pravidla počátečního a koncového přechodu pro každé pravidlo úpravy.
CreateAdjustmentRule Volání metody pro každé pravidlo úpravy.
Přiřazení pravidel úpravy k poli, které lze předat jako
adjustmentRulesparametr.
Pokud disableDaylightSavingTime je falseparametr , operace této metody je identická s přetížením TimeZoneInfo.CreateCustomTimeZone . Pokud disableDaylightSavingTime je true, vrácený objekt neobsahuje žádná pravidla úpravy a DaylightName vlastnost, jejíž hodnota je prázdný řetězec.
Viz také
- Postupy: Vytváření časových pásem bez pravidel úprav
- Postupy: Vytváření časových pásem s pravidly úprav
Platí pro
CreateCustomTimeZone(String, TimeSpan, String, String)
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- 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 standardním zobrazovaným názvem č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 větší než 14 hodin nebo kratší než -14 hodin.
Příklady
Následující příklad vytvoří vlastní časové pásmo pro oblasti Mawson a Holme Bay Antarktidy. Potom 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). K definování časového pásma, které zahrnuje úpravy letního času, použijte buď TimeZoneInfo.CreateCustomTimeZone metodu, nebo metodu TimeZoneInfo.CreateCustomTimeZone .
Následující tabulka ukazuje vztah mezi parametry, které jsou poskytovány metodě TimeZoneInfo.CreateCustomTimeZone a vlastnosti objektu TimeZoneInfo , které jsou vráceny voláním metody.
| CreateCustomTimeZone – parametr | TimeZoneInfo – vlastnost |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
Standardní název časového pásma a jeho identifikátor jsou obvykle stejné. Délka identifikátoru časového pásma by ale neměla překročit 32 znaků. Řetězec předaný parametru displayName se řídí poměrně standardním formátem. První část zobrazovaného názvu je základní posun časového pásma od koordinovaného univerzálního času, který je označen zkratkou GMT (pro Greenwich Střední čas) uzavřenou 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 nebo obojí. Napří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
- 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, standardním názvem č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 větší než 14 hodin nebo kratší než -14 hodin.
Pravidla úprav zadaná v parametru adjustmentRules se překrývají.
nebo
Pravidla úpravy zadaná v parametru adjustmentRules nejsou v chronologickém pořadí.
nebo
Jeden nebo více prvků jsou adjustmentRulesnull.
nebo
Datum může obsahovat několik pravidel úpravy.
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. K definování časového pásma, které nepodporuje letní čas, použijte buď TimeZoneInfo.CreateCustomTimeZone metodu, nebo metodu TimeZoneInfo.CreateCustomTimeZone .
Následující tabulka ukazuje vztah mezi parametry, které jsou k dispozici metodě TimeZoneInfo.CreateCustomTimeZone , a členy objektu TimeZoneInfo , které jsou vráceny voláním metody.
| CreateCustomTimeZone – parametr | Člen TimeZoneInfo |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName |
adjustmentRules |
Pole System.TimeZoneInfo.AdjustmentRule objektů vrácených metodou GetAdjustmentRules . |
Standardní název časového pásma a jeho identifikátor jsou obvykle stejné. Délka identifikátoru časového pásma by ale neměla překročit 32 znaků. Řetězec předaný parametru displayName se řídí poměrně standardním formátem. První část zobrazovaného názvu je základní posun časového pásma od koordinovaného univerzálního času, který je označen zkratkou GMT (pro Greenwich Střední čas) uzavřenou 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 nebo obojí. Napří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 úprav časového pásma. Jinými slovy, objektový model předpokládá, TimeZoneInfo že posun časového pásma od UTC je konstantní po celou dobu životnosti časového pásma a existuje nezávisle na konkrétních pravidlech úprav. Pokud chcete odrážet časové pásmo, které změnilo posun oproti času UTC, musíte vytvořit nový objekt časového pásma.
Pravidla úprav časového pásma jsou definována následujícím způsobem:
Voláním CreateFloatingDateRule metody nebo CreateFixedDateRule metody pro definování počátečního a koncového času přechodu pro každé pravidlo úpravy.
CreateAdjustmentRule Volání metody pro každé pravidlo úpravy.
Přiřazení pravidel úpravy k poli, které lze předat jako
adjustmentRulesparametr.