Condividi tramite


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

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

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