TimeZoneInfo.CreateCustomTimeZone Metod

Definition

Definierar en tidszon som inte hittas på den lokala datorn.

Överlagringar

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

Skapar en anpassad tidszon med en angiven identifierare, en förskjutning från Coordinated Universal Time (UTC), ett visningsnamn, ett standardtidsnamn, ett namn på sommartid, regler för sommartid och ett värde som anger om det returnerade objektet återspeglar information om sommartid.

CreateCustomTimeZone(String, TimeSpan, String, String)

Skapar en anpassad tidszon med en angiven identifierare, en förskjutning från Coordinated Universal Time (UTC), ett visningsnamn och ett standardtidsvisningsnamn.

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

Skapar en anpassad tidszon med en angiven identifierare, en förskjutning från Coordinated Universal Time (UTC), ett visningsnamn, ett standardtidsnamn, ett namn på sommartid och regler för sommartid.

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

Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs

Skapar en anpassad tidszon med en angiven identifierare, en förskjutning från Coordinated Universal Time (UTC), ett visningsnamn, ett standardtidsnamn, ett namn på sommartid, regler för sommartid och ett värde som anger om det returnerade objektet återspeglar information om sommartid.

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

Parametrar

id
String

Tidszonens identifierare.

baseUtcOffset
TimeSpan

Ett TimeSpan objekt som representerar tidsskillnaden mellan den här tidszonen och UTC (Coordinated Universal Time).

displayName
String

Visningsnamnet för den nya tidszonen.

standardDisplayName
String

Standardtidsnamnet för den nya tidszonen.

daylightDisplayName
String

Namnet på sommartid för den nya tidszonen.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

En matris med TimeZoneInfo.AdjustmentRule objekt som utökar utc-basförskjutningen under en viss period.

disableDaylightSavingTime
Boolean

true för att ta bort all tidsrelaterad information om sommartid som finns i adjustmentRules med det nya objektet, falseannars .

Returer

Den nya tidszonen. Om parametern disableDaylightSavingTime är truehar det returnerade objektet inga data om sommartid.

Undantag

Parametern id är null.

Parametern id är en tom sträng ("").

-eller-

Parametern baseUtcOffset representerar inte ett helt antal minuter.

Parametern baseUtcOffset är större än 14 timmar eller mindre än -14 timmar.

De justeringsregler som anges i parametern adjustmentRules överlappar varandra.

-eller-

De justeringsregler som anges i parametern adjustmentRules är inte i kronologisk ordning.

-eller-

Ett eller flera element i adjustmentRules är null.

-eller-

Ett datum kan ha flera justeringsregler tillämpade på det.

-eller-

Summan av parametern baseUtcOffset och värdet för DaylightDelta ett eller flera objekt i matrisen adjustmentRules är större än 14 timmar eller mindre än -14 timmar.

Exempel

I följande exempel skapas en anpassad tidszon för Palmer-stationen och Anvers Island i Antarktis. Den anger parametern disableDaylightSavingTime i anropet till TimeZoneInfo.CreateCustomTimeZone metoden till true. Den visar sedan den nya tidszonens namn på sommartid, om det finns en, och antalet justeringsregler för att bekräfta att den nya tidszonen inte har någon information om sommartid.

// 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)

Kommentarer

Du kan använda den här överbelastningen TimeZoneInfo.CreateCustomTimeZone av metoden för att skapa en anpassad tidszon vars stöd för sommartid kan bestämmas av villkor vid körning.

I följande tabell visas relationen mellan de parametrar som tillhandahålls till TimeZoneInfo.CreateCustomTimeZone metoden och medlemmarna i TimeZoneInfo objektet som returneras av metodanropet.

CreateCustomTimeZone-parameter Egenskapen TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName if disableDaylightSavingTime is false; String.Empty if disableDaylightSavingTime is true.
adjustmentRules En matris med TimeZoneInfo.AdjustmentRule objekt som returneras av GetAdjustmentRules metoden om disableDaylightSavingTime är false; en tom matris som returneras av GetAdjustmentRules metoden om disableDaylightSavingTime är true.
disableDaylightSavingTime Inte SupportsDaylightSavingTime.

Normalt är tidszonens standardtidsnamn och dess identifierare desamma. Längden på tidszonens identifierare får dock inte överstiga 32 tecken. Strängen som skickas till parametern displayName följer ett ganska standardformat. Den första delen av visningsnamnet är tidszonens basförskjutning från Coordinated Universal Time, som anges av förkortningen GMT (för Greenwich Mean Time), omgiven av parenteser. Detta följs av en sträng som identifierar själva tidszonen, eller en eller flera av städerna, regionerna eller länderna i tidszonen eller båda. Ett exempel:

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

En tidszons justeringsregler definieras genom att göra följande:

  1. Anropar antingen CreateFloatingDateRule metoden eller CreateFixedDateRule för att definiera övergångsreglerna för start och slut för varje justeringsregel.

  2. CreateAdjustmentRule Anropa metoden för varje justeringsregel.

  3. Tilldela justeringsreglerna till en matris som kan skickas som adjustmentRules parameter.

Om disableDaylightSavingTime parametern är falseär åtgärden för den här metoden identisk med överlagringen TimeZoneInfo.CreateCustomTimeZone . Om disableDaylightSavingTime är trueinnehåller det returnerade objektet inga justeringsregler och en DaylightName egenskap vars värde är en tom sträng.

Se även

Gäller för

CreateCustomTimeZone(String, TimeSpan, String, String)

Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs

Skapar en anpassad tidszon med en angiven identifierare, en förskjutning från Coordinated Universal Time (UTC), ett visningsnamn och ett standardtidsvisningsnamn.

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

Parametrar

id
String

Tidszonens identifierare.

baseUtcOffset
TimeSpan

Ett objekt som representerar tidsskillnaden mellan den här tidszonen och Coordinated Universal Time (UTC).

displayName
String

Visningsnamnet för den nya tidszonen.

standardDisplayName
String

Namnet på den nya tidszonens standardtid.

Returer

Den nya tidszonen.

Undantag

Parametern id är null.

Parametern id är en tom sträng ("").

-eller-

Parametern baseUtcOffset representerar inte ett helt antal minuter.

Parametern baseUtcOffset är större än 14 timmar eller mindre än -14 timmar.

Exempel

I följande exempel skapas en anpassad tidszon för regionerna Mawson och Holme Bay i Antarktis. Sedan visas resultatet av konverteringen av den lokala tiden till tiden i den nya tidszonen.

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)

Kommentarer

Den här överbelastningen CreateCustomTimeZone(String, TimeSpan, String, String) av metoden är lämplig för att skapa en tidszon som inte har några justeringar (det vill: en tidszon som inte stöder sommartid). Om du vill definiera en tidszon som innehåller justeringar för sommartid använder du antingen TimeZoneInfo.CreateCustomTimeZone metoden eller TimeZoneInfo.CreateCustomTimeZone .

I följande tabell visas relationen mellan de parametrar som tillhandahålls till TimeZoneInfo.CreateCustomTimeZone metoden och egenskaperna för objektet TimeZoneInfo som returneras av metodanropet.

CreateCustomTimeZone-parameter Egenskapen TimeZoneInfo
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

Normalt är tidszonens standardtidsnamn och dess identifierare desamma. Längden på tidszonens identifierare får dock inte överstiga 32 tecken. Strängen som skickas till parametern displayName följer ett ganska standardformat. Den första delen av visningsnamnet är tidszonens basförskjutning från Coordinated Universal Time, som anges av förkortningen GMT (för Greenwich Mean Time), omgiven av parenteser. Detta följs av en sträng som identifierar själva tidszonen, eller en eller flera av städerna, regionerna eller länderna i tidszonen eller båda. Ett exempel:

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

Se även

Gäller för

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

Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs

Skapar en anpassad tidszon med en angiven identifierare, en förskjutning från Coordinated Universal Time (UTC), ett visningsnamn, ett standardtidsnamn, ett namn på sommartid och regler för sommartid.

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

Parametrar

id
String

Tidszonens identifierare.

baseUtcOffset
TimeSpan

Ett objekt som representerar tidsskillnaden mellan den här tidszonen och Coordinated Universal Time (UTC).

displayName
String

Visningsnamnet för den nya tidszonen.

standardDisplayName
String

Den nya tidszonens standardtidsnamn.

daylightDisplayName
String

Namnet på sommartid för den nya tidszonen.

adjustmentRules
TimeZoneInfo.AdjustmentRule[]

En matris som utökar utc-basförskjutningen för en viss period.

Returer

Ett TimeZoneInfo objekt som representerar den nya tidszonen.

Undantag

Parametern id är null.

Parametern id är en tom sträng ("").

-eller-

Parametern baseUtcOffset representerar inte ett helt antal minuter.

Parametern baseUtcOffset är större än 14 timmar eller mindre än -14 timmar.

De justeringsregler som anges i parametern adjustmentRules överlappar varandra.

-eller-

De justeringsregler som anges i parametern adjustmentRules är inte i kronologisk ordning.

-eller-

Ett eller flera element i adjustmentRules är null.

-eller-

Ett datum kan ha flera justeringsregler tillämpade på det.

-eller-

Summan av parametern baseUtcOffset och värdet för DaylightDelta ett eller flera objekt i matrisen adjustmentRules är större än 14 timmar eller mindre än -14 timmar.

Exempel

I följande exempel skapas en anpassad tidszon för Palmer-stationen och Anvers Island i Antarktis. Sedan konverteras den lokala tiden till tiden i den nya tidszonen och resultatet visas.

// 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)

Kommentarer

Den här överlagringen TimeZoneInfo.CreateCustomTimeZone av metoden är lämplig för att skapa en tidszon som stöder sommartid. Om du vill definiera en tidszon som inte stöder sommartid använder du antingen TimeZoneInfo.CreateCustomTimeZone metoden eller TimeZoneInfo.CreateCustomTimeZone .

I följande tabell visas relationen mellan de parametrar som tillhandahålls till TimeZoneInfo.CreateCustomTimeZone metoden och medlemmarna i TimeZoneInfo objektet som returneras av metodanropet.

CreateCustomTimeZone-parameter TimeZoneInfo-medlem
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightName
adjustmentRules En matris med System.TimeZoneInfo.AdjustmentRule objekt som returneras av GetAdjustmentRules metoden.

Normalt är tidszonens standardtidsnamn och dess identifierare desamma. Längden på tidszonens identifierare får dock inte överstiga 32 tecken. Strängen som skickas till parametern displayName följer ett ganska standardformat. Den första delen av visningsnamnet är tidszonens basförskjutning från Coordinated Universal Time, som anges av förkortningen GMT (för Greenwich Mean Time), omgiven av parenteser. Detta följs av en sträng som identifierar själva tidszonen, eller en eller flera av städerna, regionerna eller länderna i tidszonen eller båda. Ett exempel:

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

Parametern baseUtcOffset definierar den anpassade tidszonens förskjutning från Coordinated Universal Time (UTC) för alla tidszonens justeringsregler. Med andra ord TimeZoneInfo förutsätter objektmodellen att tidszonens förskjutning från UTC är konstant under hela tidszonens livslängd och finns oberoende av vissa justeringsregler. Om du vill återspegla en tidszon som har ändrat sin förskjutning från UTC måste du skapa ett nytt tidszonsobjekt.

En tidszons justeringsregler definieras genom att göra följande:

  1. Anropar antingen CreateFloatingDateRule metoden eller CreateFixedDateRule för att definiera start- och slutövergångstiden för varje justeringsregel.

  2. CreateAdjustmentRule Anropa metoden för varje justeringsregel.

  3. Tilldela justeringsreglerna till en matris som kan skickas som adjustmentRules parameter.

Se även

Gäller för