TimeZoneInfo.CreateCustomTimeZone Metodo

Definizione

Definisce un fuso orario non trovato nel computer locale.

Overload

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 dell'ora solare, un nome dell'ora legale, regole di applicazione per l'ora legale e un valore che indica se l'oggetto restituito riflette o meno 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 dell'ora solare, un nome dell'ora legale e regole di applicazione per l'ora legale.

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

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 dell'ora solare, un nome dell'ora legale, regole di applicazione per l'ora legale e un valore che indica se l'oggetto restituito riflette o meno le informazioni sull'ora legale.

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

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 oggetti TimeZoneInfo.AdjustmentRule che aumentano l'offset UTC di base per un determinato periodo.

disableDaylightSavingTime
Boolean

true per rimuovere le informazioni relative all'ora legale presenti in adjustmentRules con il nuovo oggetto; in caso contrario, false.

Restituisce

Nuovo fuso orario. Se il parametro disableDaylightSavingTime è true, l'oggetto restituito non include dati sull'ora legale.

Eccezioni

Il valore del parametro id è null.

Il parametro id è una stringa vuota ("").

-oppure-

Il parametro baseUtcOffset non rappresenta un numero intero di minuti.

Il parametro baseUtcOffset è maggiore di 14 ore o minore di -14 ore.

Le regole di regolazione specificate nel parametro adjustmentRules si sovrappongono.

-oppure-

Le regole di regolazione specificate nel parametro adjustmentRules non sono in ordine cronologico.

-oppure-

Uno o più elementi in adjustmentRules sono null.

-oppure-

A una data possono essere applicate più regole di regolazione.

-oppure-

La somma del parametro baseUtcOffset e del valore DaylightDelta di uno o più oggetti nella matrice adjustmentRules è maggiore di 14 ore o minore di -14 ore.

Esempio

Nell'esempio seguente viene creato un fuso orario personalizzato per la stazione Palmer e l'isola Anvers in Antartica. 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 regolazione per verificare che il nuovo fuso orario non abbia 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);

Commenti

È possibile usare questo overload del metodo per creare un fuso orario personalizzato il cui supporto per l'ora TimeZoneInfo.CreateCustomTimeZone 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.

Parametro CreateCustomTimeZone TimeZoneInfo, proprietà
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName
daylightDisplayName DaylightNamese è ; String.Empty se disableDaylightSavingTimedisableDaylightSavingTime è truefalse.
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 standard del fuso orario e il relativo identificatore sono gli stessi. Tuttavia, la lunghezza dell'identificatore del fuso orario non deve superare 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 da Coordinated Universal Time, 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ù delle città, delle regioni o dei paesi nel fuso orario o entrambi. Ad esempio:

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

Le regole di regolazione del fuso orario sono definite eseguendo le operazioni seguenti:

  1. Chiamata del CreateFloatingDateRuleCreateFixedDateRule metodo o 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 è , l'operazione di questo metodo è falseidentica all'overload TimeZoneInfo.CreateCustomTimeZone . Se disableDaylightSavingTime è true, l'oggetto restituito non include regole di regolazione e una proprietà il cui valore è una DaylightName stringa vuota.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateCustomTimeZone(String, TimeSpan, String, String)

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 (string id, TimeSpan baseUtcOffset, string? displayName, string? standardDisplayName);
public static TimeZoneInfo CreateCustomTimeZone (string id, TimeSpan baseUtcOffset, string displayName, string standardDisplayName);

Parametri

id
String

Identificatore del fuso orario.

baseUtcOffset
TimeSpan

Oggetto 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.

Restituisce

Nuovo fuso orario.

Eccezioni

Il valore del parametro id è null.

Il parametro id è una stringa vuota ("").

-oppure-

Il parametro baseUtcOffset non rappresenta un numero intero di minuti.

Il parametro baseUtcOffset è maggiore di 14 ore o minore di -14 ore.

Esempio

Nell'esempio seguente viene creato un fuso orario personalizzato per le regioni mawson e Holme Bay dell'Antartica. Visualizza quindi il risultato della conversione dell'ora locale all'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);

Commenti

Questo overload del metodo è adatto per la creazione di un fuso orario che non ha modifiche , ovvero un fuso orario che non supporta l'ora CreateCustomTimeZone(String, TimeSpan, String, String) 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.

Parametro CreateCustomTimeZone TimeZoneInfo, proprietà
id Id
baseUtcOffset BaseUtcOffset
displayName DisplayName
standardDisplayName StandardName

In genere, il nome dell'ora standard del fuso orario e il relativo identificatore sono gli stessi. Tuttavia, la lunghezza dell'identificatore del fuso orario non deve superare 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 da Coordinated Universal Time, 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ù delle città, delle regioni o dei paesi nel fuso orario o entrambi. Ad 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

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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

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 dell'ora solare, un nome dell'ora legale e regole di applicazione per l'ora legale.

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

Parametri

id
String

Identificatore del fuso orario.

baseUtcOffset
TimeSpan

Oggetto 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 che aumenta l'offset UTC di base per un determinato periodo.

Restituisce

Oggetto TimeZoneInfo che rappresenta il nuovo fuso orario.

Eccezioni

Il valore del parametro id è null.

Il parametro id è una stringa vuota ("").

-oppure-

Il parametro baseUtcOffset non rappresenta un numero intero di minuti.

Il parametro baseUtcOffset è maggiore di 14 ore o minore di -14 ore.

Le regole di regolazione specificate nel parametro adjustmentRules si sovrappongono.

-oppure-

Le regole di regolazione specificate nel parametro adjustmentRules non sono in ordine cronologico.

-oppure-

Uno o più elementi in adjustmentRules sono null.

-oppure-

A una data possono essere applicate più regole di regolazione.

-oppure-

La somma del parametro baseUtcOffset e del valore DaylightDelta di uno o più oggetti nella matrice adjustmentRules è maggiore di 14 ore o minore di -14 ore.

Esempio

Nell'esempio seguente viene creato un fuso orario personalizzato per la stazione Palmer e l'isola Anvers in Antartica. Converte quindi l'ora locale nell'ora del 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);

Commenti

Questo overload del metodo è adatto per la creazione di un fuso orario che supporta l'ora TimeZoneInfo.CreateCustomTimeZone 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.

Parametro CreateCustomTimeZone 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 standard del fuso orario e il relativo identificatore sono gli stessi. Tuttavia, la lunghezza dell'identificatore del fuso orario non deve superare 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 da Coordinated Universal Time, 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ù delle città, delle regioni o dei paesi nel fuso orario o entrambi. Ad 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 da UTC sia costante durante tutta la durata del fuso orario e esista indipendentemente da determinate regole di regolazione. Per riflettere un fuso orario che ha modificato l'offset da UTC, è necessario creare un nuovo oggetto fuso orario.

Le regole di regolazione del fuso orario sono 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

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1