Sdílet prostřednictvím


TimeZoneInfo.CreateCustomTimeZone Metoda

Definice

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 trueparametr , 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:

  1. Voláním metody CreateFloatingDateRule nebo CreateFixedDateRule definujete počáteční a koncová pravidla přechodu pro každé pravidlo úpravy.

  2. CreateAdjustmentRule Volání metody pro každé pravidlo úpravy.

  3. Přiřazení pravidel úprav k poli, které lze předat jako adjustmentRules parametr.

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 úprav a DaylightName vlastnost, jejíž hodnota je prázdný řetězec.

Viz také

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:

  1. Voláním metody CreateFloatingDateRule nebo CreateFixedDateRule definovat počáteční a koncový čas přechodu pro každé pravidlo úpravy.

  2. CreateAdjustmentRule Volání metody pro každé pravidlo úpravy.

  3. Přiřazení pravidel úprav k poli, které lze předat jako adjustmentRules parametr.

Viz také

Platí pro