TimeZoneInfo.CreateCustomTimeZone Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce un fuso orario non trovato nel computer locale.
Overload
| Nome | Descrizione |
|---|---|
| CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean) |
Crea un fuso orario personalizzato con un identificatore specificato, un offset dall'ora UTC (Coordinated Universal Time), un nome visualizzato, un nome di ora solare, un nome dell'ora legale, regole dell'ora legale e un valore che indica se l'oggetto restituito riflette le informazioni sull'ora legale. |
| CreateCustomTimeZone(String, TimeSpan, String, String) |
Crea un fuso orario personalizzato con un identificatore specificato, un offset dall'ora UTC (Coordinated Universal Time), un nome visualizzato e un nome visualizzato dell'ora solare. |
| CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) |
Crea un fuso orario personalizzato con un identificatore specificato, un offset dall'ora UTC (Coordinated Universal Time), un nome visualizzato, un nome di ora solare, un nome dell'ora legale e le regole dell'ora legale. |
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
Crea un fuso orario personalizzato con un identificatore specificato, un offset dall'ora UTC (Coordinated Universal Time), un nome visualizzato, un nome di ora solare, un nome dell'ora legale, regole dell'ora legale e un valore che indica se l'oggetto restituito riflette le informazioni sull'ora legale.
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
Parametri
- id
- String
Identificatore del fuso orario.
- baseUtcOffset
- TimeSpan
Oggetto TimeSpan che rappresenta la differenza di ora tra questo fuso orario e l'ora UTC (Coordinated Universal Time).
- displayName
- String
Nome visualizzato del nuovo fuso orario.
- standardDisplayName
- String
Nome dell'ora solare del nuovo fuso orario.
- daylightDisplayName
- String
Nome dell'ora legale del nuovo fuso orario.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Matrice di TimeZoneInfo.AdjustmentRule oggetti che aumentano l'offset UTC di base per un determinato periodo.
- disableDaylightSavingTime
- Boolean
true per eliminare le informazioni relative all'ora legale presenti in adjustmentRules con il nuovo oggetto; in caso contrario, false.
Restituisce
Nuovo fuso orario. Se il disableDaylightSavingTime parametro è true, l'oggetto restituito non dispone di dati sull'ora legale.
Eccezioni
Il id parametro è null.
Il id parametro è una stringa vuota ("").
oppure
Il baseUtcOffset parametro non rappresenta un numero intero di minuti.
Il baseUtcOffset parametro è maggiore di 14 ore o minore di -14 ore.
Le regole di regolazione specificate nel adjustmentRules parametro si sovrappongono.
oppure
Le regole di regolazione specificate nel adjustmentRules parametro non sono in ordine cronologico.
oppure
Uno o più elementi in adjustmentRules sono null.
oppure
A una data possono essere applicate più regole di rettifica.
oppure
La somma del baseUtcOffset parametro e del DaylightDelta valore di uno o più oggetti nella adjustmentRules matrice è maggiore di 14 ore o minore di -14 ore.
Esempio
L'esempio seguente crea un fuso orario personalizzato per la stazione Palmer e l'isola anvers in Antartide. Imposta il disableDaylightSavingTime parametro nella chiamata al TimeZoneInfo.CreateCustomTimeZone metodo su true. Visualizza quindi il nome dell'ora legale del nuovo fuso orario, se presente e il numero di regole di rettifica per verificare che il nuovo fuso orario non disponga di informazioni sull'ora legale.
// 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)
Commenti
È possibile usare questo overload del TimeZoneInfo.CreateCustomTimeZone metodo per creare un fuso orario personalizzato il cui supporto per l'ora legale può essere determinato dalle condizioni in fase di esecuzione.
Nella tabella seguente viene illustrata la relazione tra i parametri forniti al TimeZoneInfo.CreateCustomTimeZone metodo e i membri dell'oggetto TimeZoneInfo restituiti dalla chiamata al metodo .
| CreateCustomTimeZone - parametro | TimeZoneInfo - proprietà |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName se disableDaylightSavingTime è false; String.Empty se disableDaylightSavingTime è true. |
adjustmentRules |
Matrice di TimeZoneInfo.AdjustmentRule oggetti restituiti dal GetAdjustmentRules metodo se disableDaylightSavingTime è false; una matrice vuota restituita dal GetAdjustmentRules metodo se disableDaylightSavingTime è true. |
disableDaylightSavingTime |
Non SupportsDaylightSavingTime. |
In genere, il nome dell'ora solare del fuso orario e il relativo identificatore sono gli stessi. Tuttavia, la lunghezza dell'identificatore del fuso orario non deve superare i 32 caratteri. La stringa passata al displayName parametro segue un formato abbastanza standard. La prima parte del nome visualizzato è l'offset di base del fuso orario dall'ora coordinated universal, indicato dall'acronimo GMT (per Greenwich Mean Time), racchiuso tra parentesi. Questo è seguito da una stringa che identifica il fuso orario stesso, o una o più città, aree geografiche o paesi nel fuso orario o entrambi. Per esempio:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Le regole di regolazione di un fuso orario vengono definite eseguendo le operazioni seguenti:
Chiamata di CreateFloatingDateRule o del CreateFixedDateRule metodo per definire le regole di transizione iniziale e finale per ogni regola di regolazione.
Chiamata del CreateAdjustmentRule metodo per ogni regola di regolazione.
Assegnazione delle regole di regolazione a una matrice che può essere passata come
adjustmentRulesparametro.
Se disableDaylightSavingTime il parametro è false, l'operazione di questo metodo è identica all'overload TimeZoneInfo.CreateCustomTimeZone . Se disableDaylightSavingTime è true, l'oggetto restituito non include regole di regolazione e una proprietà il DaylightName cui valore è una stringa vuota.
Vedi anche
- Procedura: Creare fusi orari senza regole di rettifica
- Procedura: Creare fusi orari con regole di regolazione
Si applica a
CreateCustomTimeZone(String, TimeSpan, String, String)
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
Crea un fuso orario personalizzato con un identificatore specificato, un offset dall'ora UTC (Coordinated Universal Time), un nome visualizzato e un nome visualizzato dell'ora solare.
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
Parametri
- id
- String
Identificatore del fuso orario.
- baseUtcOffset
- TimeSpan
Oggetto che rappresenta la differenza di orario tra questo fuso orario e l'ora UTC (Coordinated Universal Time).
- displayName
- String
Nome visualizzato del nuovo fuso orario.
- standardDisplayName
- String
Nome dell'ora solare del nuovo fuso orario.
Restituisce
Nuovo fuso orario.
Eccezioni
Il id parametro è null.
Il id parametro è una stringa vuota ("").
oppure
Il baseUtcOffset parametro non rappresenta un numero intero di minuti.
Il baseUtcOffset parametro è maggiore di 14 ore o minore di -14 ore.
Esempio
L'esempio seguente crea un fuso orario personalizzato per le regioni mawson e Holme Bay dell'Antartide. Visualizza quindi il risultato della conversione dell'ora locale nell'ora nel nuovo fuso orario.
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)
Commenti
Questo overload del CreateCustomTimeZone(String, TimeSpan, String, String) metodo è adatto per la creazione di un fuso orario senza regolazioni, ovvero un fuso orario che non supporta l'ora legale. Per definire un fuso orario che include le regolazioni per l'ora legale, usare il TimeZoneInfo.CreateCustomTimeZone metodo o TimeZoneInfo.CreateCustomTimeZone .
Nella tabella seguente viene illustrata la relazione tra i parametri forniti al TimeZoneInfo.CreateCustomTimeZone metodo e le proprietà dell'oggetto TimeZoneInfo restituito dalla chiamata al metodo .
| CreateCustomTimeZone - parametro | TimeZoneInfo - proprietà |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
In genere, il nome dell'ora solare del fuso orario e il relativo identificatore sono gli stessi. Tuttavia, la lunghezza dell'identificatore del fuso orario non deve superare i 32 caratteri. La stringa passata al displayName parametro segue un formato abbastanza standard. La prima parte del nome visualizzato è l'offset di base del fuso orario dall'ora coordinated universal, indicato dall'acronimo GMT (per Greenwich Mean Time), racchiuso tra parentesi. Questo è seguito da una stringa che identifica il fuso orario stesso, o una o più città, aree geografiche o paesi nel fuso orario o entrambi. Per esempio:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Vedi anche
Si applica a
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
- Origine:
- TimeZoneInfo.cs
Crea un fuso orario personalizzato con un identificatore specificato, un offset dall'ora UTC (Coordinated Universal Time), un nome visualizzato, un nome di ora solare, un nome dell'ora legale e le regole dell'ora legale.
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
Parametri
- id
- String
Identificatore del fuso orario.
- baseUtcOffset
- TimeSpan
Oggetto che rappresenta la differenza di orario tra questo fuso orario e l'ora UTC (Coordinated Universal Time).
- displayName
- String
Nome visualizzato del nuovo fuso orario.
- standardDisplayName
- String
Nome dell'ora solare del nuovo fuso orario.
- daylightDisplayName
- String
Nome dell'ora legale del nuovo fuso orario.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Matrice che aumenta l'offset UTC di base per un determinato periodo.
Restituisce
Oggetto TimeZoneInfo che rappresenta il nuovo fuso orario.
Eccezioni
Il id parametro è null.
Il id parametro è una stringa vuota ("").
oppure
Il baseUtcOffset parametro non rappresenta un numero intero di minuti.
Il baseUtcOffset parametro è maggiore di 14 ore o minore di -14 ore.
Le regole di regolazione specificate nel adjustmentRules parametro si sovrappongono.
oppure
Le regole di regolazione specificate nel adjustmentRules parametro non sono in ordine cronologico.
oppure
Uno o più elementi in adjustmentRules sono null.
oppure
A una data possono essere applicate più regole di rettifica.
oppure
La somma del baseUtcOffset parametro e del DaylightDelta valore di uno o più oggetti nella adjustmentRules matrice è maggiore di 14 ore o minore di -14 ore.
Esempio
L'esempio seguente crea un fuso orario personalizzato per la stazione Palmer e l'isola anvers in Antartide. Converte quindi l'ora locale nell'ora nel nuovo fuso orario e visualizza il risultato.
// 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)
Commenti
Questo overload del TimeZoneInfo.CreateCustomTimeZone metodo è adatto per la creazione di un fuso orario che supporta l'ora legale. Per definire un fuso orario che non supporta l'ora legale, usare il TimeZoneInfo.CreateCustomTimeZone metodo o TimeZoneInfo.CreateCustomTimeZone .
Nella tabella seguente viene illustrata la relazione tra i parametri forniti al TimeZoneInfo.CreateCustomTimeZone metodo e i membri dell'oggetto TimeZoneInfo restituiti dalla chiamata al metodo .
| CreateCustomTimeZone - parametro | Membro TimeZoneInfo |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName |
adjustmentRules |
Matrice di System.TimeZoneInfo.AdjustmentRule oggetti restituiti dal GetAdjustmentRules metodo . |
In genere, il nome dell'ora solare del fuso orario e il relativo identificatore sono gli stessi. Tuttavia, la lunghezza dell'identificatore del fuso orario non deve superare i 32 caratteri. La stringa passata al displayName parametro segue un formato abbastanza standard. La prima parte del nome visualizzato è l'offset di base del fuso orario dall'ora coordinated universal, indicato dall'acronimo GMT (per Greenwich Mean Time), racchiuso tra parentesi. Questo è seguito da una stringa che identifica il fuso orario stesso, o una o più città, aree geografiche o paesi nel fuso orario o entrambi. Per esempio:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Il baseUtcOffset parametro definisce l'offset del fuso orario personalizzato dall'ora UTC (Coordinated Universal Time) per tutte le regole di regolazione del fuso orario. In altre parole, il TimeZoneInfo modello a oggetti presuppone che l'offset del fuso orario dall'ora UTC sia costante per tutta la durata del fuso orario e esista indipendentemente da particolari regole di regolazione. Per riflettere un fuso orario che ha modificato l'offset rispetto all'ora UTC, è necessario creare un nuovo oggetto fuso orario.
Le regole di regolazione di un fuso orario vengono definite eseguendo le operazioni seguenti:
Chiamata di CreateFloatingDateRule o del CreateFixedDateRule metodo per definire il tempo di transizione iniziale e finale per ogni regola di regolazione.
Chiamata del CreateAdjustmentRule metodo per ogni regola di regolazione.
Assegnazione delle regole di regolazione a una matrice che può essere passata come
adjustmentRulesparametro.