TimeZoneInfo.CreateCustomTimeZone Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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:
Anropar antingen CreateFloatingDateRule metoden eller CreateFixedDateRule för att definiera övergångsreglerna för start och slut för varje justeringsregel.
CreateAdjustmentRule Anropa metoden för varje justeringsregel.
Tilldela justeringsreglerna till en matris som kan skickas som
adjustmentRulesparameter.
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
- Anvisningar: Skapa tidszoner utan justeringsregler
- Anvisningar: Skapa tidszoner med justeringsregler
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:
Anropar antingen CreateFloatingDateRule metoden eller CreateFixedDateRule för att definiera start- och slutövergångstiden för varje justeringsregel.
CreateAdjustmentRule Anropa metoden för varje justeringsregel.
Tilldela justeringsreglerna till en matris som kan skickas som
adjustmentRulesparameter.