TimeZoneInfo.CreateCustomTimeZone Metodo
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.
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 disableDaylightSavingTime disableDaylightSavingTime è true false . |
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:
Chiamata del CreateFloatingDateRuleCreateFixedDateRule metodo o 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
adjustmentRules
parametro.
Se disableDaylightSavingTime
il parametro è , l'operazione di questo metodo è false
identica 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
- Procedura: creare fusi orari senza regole di regolazione
- Procedura: creare fusi orari con regole di regolazione
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 |
- 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
.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 |
- 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:
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
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 |
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: