Condividi tramite


TimeZoneInfo.CreateCustomTimeZone Metodo

Definizione

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:

  1. Chiamata di CreateFloatingDateRule o del CreateFixedDateRule metodo per definire le regole di transizione iniziale e finale per ogni regola di regolazione.

  2. Chiamata del CreateAdjustmentRule metodo per ogni regola di regolazione.

  3. Assegnazione delle regole di regolazione a una matrice che può essere passata come adjustmentRules parametro.

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

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:

  1. Chiamata di CreateFloatingDateRule o del CreateFixedDateRule metodo per definire il tempo di transizione iniziale e finale per ogni regola di regolazione.

  2. Chiamata del CreateAdjustmentRule metodo per ogni regola di regolazione.

  3. Assegnazione delle regole di regolazione a una matrice che può essere passata come adjustmentRules parametro.

Vedi anche

Si applica a