TimeZoneInfo.CreateCustomTimeZone Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit un fuseau horaire qui est introuvable sur l'ordinateur local.
Surcharges
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean) |
Crée un fuseau horaire personnalisé avec un identificateur spécifié, un offset de temps universel coordonné (UTC, Universal Time Coordinated), un nom d'affichage, un nom d'heure d'hiver, un nom d'heure d'été, des règles d'heure d'été et une valeur qui indique si l'objet retourné reflète les informations d'heure d'été. |
CreateCustomTimeZone(String, TimeSpan, String, String) |
Crée un fuseau horaire personnalisé avec un identificateur spécifié, un offset de temps universel coordonné (UTC, Universal Time Coordinated), un nom d'affichage et un nom d'affichage de l'heure d'hiver. |
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) |
Crée un fuseau horaire personnalisé avec un identificateur spécifié, un offset de temps universel coordonné (UTC, Universal Time Coordinated), un nom d'affichage, un nom d'heure d'hiver, un nom d'heure d'été et des règles d'heure d'été. |
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Crée un fuseau horaire personnalisé avec un identificateur spécifié, un offset de temps universel coordonné (UTC, Universal Time Coordinated), un nom d'affichage, un nom d'heure d'hiver, un nom d'heure d'été, des règles d'heure d'été et une valeur qui indique si l'objet retourné reflète les informations d'heure d'été.
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
Paramètres
- id
- String
Identificateur du fuseau horaire.
- baseUtcOffset
- TimeSpan
Objet TimeSpan qui représente le décalage entre ce fuseau horaire et le temps universel coordonné (UTC, Universal Time Coordinated).
- displayName
- String
Nom d'affichage du nouveau fuseau horaire.
- standardDisplayName
- String
Nom de l'heure d'hiver du nouveau fuseau horaire.
- daylightDisplayName
- String
Nom de l'heure d'été du nouveau fuseau horaire.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Tableau d'objets TimeZoneInfo.AdjustmentRule qui augmentent l'offset UTC de base pour une période particulière.
- disableDaylightSavingTime
- Boolean
true
pour ignorer les informations relatives à l'heure d'été contenues dans adjustmentRules
avec le nouvel objet ; sinon, false
.
Retours
Nouveau fuseau horaire. Si le paramètre disableDaylightSavingTime
a la valeur true
, l'objet retourné ne contient pas de données d'heure d'été.
Exceptions
Le paramètre id
a la valeur null
.
Le paramètre id
est une chaîne vide ("").
- ou -
Le paramètre baseUtcOffset
ne représente pas un nombre entier de minutes.
Le paramètre baseUtcOffset
est supérieur à 14 heures ou inférieur à -14 heures.
Les règles d’ajustement spécifiées dans le paramètre adjustmentRules
se chevauchent.
- ou -
Les règles d’ajustement spécifiées dans le paramètre adjustmentRules
ne sont pas dans l’ordre chronologique.
- ou -
Un ou plusieurs éléments dans adjustmentRules
sont null
.
- ou -
Plusieurs règles d’ajustement peuvent être appliquées à une date.
- ou -
La somme du paramètre baseUtcOffset
et de la valeur DaylightDelta d’un ou plusieurs objets dans le tableau adjustmentRules
est supérieure à 14 heures ou inférieure à -14 heures.
Exemples
L’exemple suivant crée un fuseau horaire personnalisé pour la station Palmer et l’île d’Anvers en Antarctique. Il définit le disableDaylightSavingTime
paramètre dans l’appel à la méthode sur TimeZoneInfo.CreateCustomTimeZonetrue
. Il affiche ensuite le nom de l’heure d’été du nouveau fuseau horaire, le cas échéant, et le nombre de règles d’ajustement pour confirmer que le nouveau fuseau horaire n’a pas d’informations d’heure d’été.
// 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)
Remarques
Vous pouvez utiliser cette surcharge de la méthode pour créer un fuseau horaire personnalisé dont la TimeZoneInfo.CreateCustomTimeZone prise en charge de l’heure d’été peut être déterminée par les conditions au moment de l’exécution.
Le tableau suivant montre la relation entre les paramètres fournis à la TimeZoneInfo.CreateCustomTimeZone méthode et les membres de l’objet TimeZoneInfo retournés par l’appel de méthode.
Paramètre CreateCustomTimeZone | Propriété TimeZoneInfo |
---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName si disableDaylightSavingTime est false ; String.Empty si disableDaylightSavingTime est true . |
adjustmentRules |
Tableau d’objets TimeZoneInfo.AdjustmentRule retourné par la GetAdjustmentRules méthode si disableDaylightSavingTime est false ; tableau vide retourné par la GetAdjustmentRules méthode si disableDaylightSavingTime est true . |
disableDaylightSavingTime |
Pas SupportsDaylightSavingTime. |
En règle générale, le nom d’heure standard du fuseau horaire et son identificateur sont les mêmes. Toutefois, la longueur de l’identificateur du fuseau horaire ne doit pas dépasser 32 caractères. La chaîne passée au displayName
paramètre suit un format assez standard. La première partie du nom d’affichage est le décalage de base du fuseau horaire par rapport au temps universel coordonné, qui est indiqué par l’acronyme GMT (pour Greenwich Mean Time), placé entre parenthèses. Cette chaîne est suivie d’une chaîne qui identifie le fuseau horaire lui-même, ou une ou plusieurs des villes, régions ou pays du fuseau horaire, ou les deux. Exemple :
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Les règles d’ajustement d’un fuseau horaire sont définies en procédant comme suit :
Appel de la CreateFloatingDateRuleCreateFixedDateRule méthode ou pour définir les règles de transition de début et de fin pour chaque règle d’ajustement.
Appel de la CreateAdjustmentRule méthode pour chaque règle d’ajustement.
Affectation des règles d’ajustement à un tableau qui peut être passé en tant que
adjustmentRules
paramètre.
Si disableDaylightSavingTime
le paramètre est false
, l’opération de cette méthode est identique à la TimeZoneInfo.CreateCustomTimeZone surcharge. Si disableDaylightSavingTime
est true
, l’objet retourné n’inclut aucune règle d’ajustement et une DaylightName propriété dont la valeur est une chaîne vide.
Voir aussi
- Guide pratique pour créer des fuseaux horaires sans règles d’ajustement
- Guide pratique pour créer des fuseaux horaires avec des règles d’ajustement
S’applique à
CreateCustomTimeZone(String, TimeSpan, String, String)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Crée un fuseau horaire personnalisé avec un identificateur spécifié, un offset de temps universel coordonné (UTC, Universal Time Coordinated), un nom d'affichage et un nom d'affichage de l'heure d'hiver.
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
Paramètres
- id
- String
Identificateur du fuseau horaire.
- baseUtcOffset
- TimeSpan
Objet qui représente la différence d'heure entre ce fuseau horaire et le temps universel coordonné.
- displayName
- String
Nom d'affichage du nouveau fuseau horaire.
- standardDisplayName
- String
Nom de l'heure d'hiver du nouveau fuseau horaire.
Retours
Nouveau fuseau horaire.
Exceptions
Le paramètre id
a la valeur null
.
Le paramètre id
est une chaîne vide ("").
- ou -
Le paramètre baseUtcOffset
ne représente pas un nombre entier de minutes.
Le paramètre baseUtcOffset
est supérieur à 14 heures ou inférieur à -14 heures.
Exemples
L’exemple suivant crée un fuseau horaire personnalisé pour les régions de Mawson et holme Bay de l’Antarctique. Il affiche ensuite le résultat de la conversion de l’heure locale en heure dans le nouveau fuseau horaire.
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)
Remarques
Cette surcharge de la méthode convient à la CreateCustomTimeZone(String, TimeSpan, String, String) création d’un fuseau horaire sans ajustements (autrement dit, un fuseau horaire qui ne prend pas en charge l’heure d’été). Pour définir un fuseau horaire qui inclut des ajustements pour l’heure d’été, utilisez la TimeZoneInfo.CreateCustomTimeZone méthode ou TimeZoneInfo.CreateCustomTimeZone .
Le tableau suivant montre la relation entre les paramètres fournis à la TimeZoneInfo.CreateCustomTimeZone méthode et les propriétés de l’objet TimeZoneInfo qui sont retournées par l’appel de méthode.
Paramètre CreateCustomTimeZone | Propriété TimeZoneInfo |
---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
En règle générale, le nom d’heure standard du fuseau horaire et son identificateur sont les mêmes. Toutefois, la longueur de l’identificateur du fuseau horaire ne doit pas dépasser 32 caractères. La chaîne passée au displayName
paramètre suit un format assez standard. La première partie du nom d’affichage est le décalage de base du fuseau horaire par rapport au temps universel coordonné, qui est indiqué par l’acronyme GMT (pour Greenwich Mean Time), placé entre parenthèses. Cette chaîne est suivie d’une chaîne qui identifie le fuseau horaire lui-même, ou une ou plusieurs des villes, régions ou pays du fuseau horaire, ou les deux. Exemple :
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Voir aussi
S’applique à
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Crée un fuseau horaire personnalisé avec un identificateur spécifié, un offset de temps universel coordonné (UTC, Universal Time Coordinated), un nom d'affichage, un nom d'heure d'hiver, un nom d'heure d'été et des règles d'heure d'été.
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
Paramètres
- id
- String
Identificateur du fuseau horaire.
- baseUtcOffset
- TimeSpan
Objet qui représente la différence d'heure entre ce fuseau horaire et le temps universel coordonné.
- displayName
- String
Nom d'affichage du nouveau fuseau horaire.
- standardDisplayName
- String
Nom de l'heure d'hiver du nouveau fuseau horaire.
- daylightDisplayName
- String
Nom de l'heure d'été du nouveau fuseau horaire.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Tableau qui augmente l'offset UTC de base pour une période particulière.
Retours
Objet TimeZoneInfo qui représente le nouveau fuseau horaire.
Exceptions
Le paramètre id
a la valeur null
.
Le paramètre id
est une chaîne vide ("").
- ou -
Le paramètre baseUtcOffset
ne représente pas un nombre entier de minutes.
Le paramètre baseUtcOffset
est supérieur à 14 heures ou inférieur à -14 heures.
Les règles d’ajustement spécifiées dans le paramètre adjustmentRules
se chevauchent.
- ou -
Les règles d’ajustement spécifiées dans le paramètre adjustmentRules
ne sont pas dans l’ordre chronologique.
- ou -
Un ou plusieurs éléments dans adjustmentRules
sont null
.
- ou -
Plusieurs règles d’ajustement peuvent être appliquées à une date.
- ou -
La somme du paramètre baseUtcOffset
et de la valeur DaylightDelta d’un ou plusieurs objets dans le tableau adjustmentRules
est supérieure à 14 heures ou inférieure à -14 heures.
Exemples
L’exemple suivant crée un fuseau horaire personnalisé pour la station Palmer et l’île d’Anvers en Antarctique. Il convertit ensuite l’heure locale en heure dans le nouveau fuseau horaire et affiche le résultat.
// 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)
Remarques
Cette surcharge de la méthode convient à la TimeZoneInfo.CreateCustomTimeZone création d’un fuseau horaire prenant en charge l’heure d’été. Pour définir un fuseau horaire qui ne prend pas en charge l’heure d’été, utilisez la TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone méthode ou .
Le tableau suivant montre la relation entre les paramètres fournis à la TimeZoneInfo.CreateCustomTimeZone méthode et les membres de l’objet TimeZoneInfo retournés par l’appel de méthode.
Paramètre CreateCustomTimeZone | Membre TimeZoneInfo |
---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName |
adjustmentRules |
Tableau d’objets System.TimeZoneInfo.AdjustmentRule retournés par la GetAdjustmentRules méthode . |
En règle générale, le nom d’heure standard du fuseau horaire et son identificateur sont les mêmes. Toutefois, la longueur de l’identificateur du fuseau horaire ne doit pas dépasser 32 caractères. La chaîne passée au displayName
paramètre suit un format assez standard. La première partie du nom d’affichage est le décalage de base du fuseau horaire par rapport au temps universel coordonné, qui est indiqué par l’acronyme GMT (pour Greenwich Mean Time), placé entre parenthèses. Cette chaîne est suivie d’une chaîne qui identifie le fuseau horaire lui-même, ou une ou plusieurs des villes, régions ou pays du fuseau horaire, ou les deux. Exemple :
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Le baseUtcOffset
paramètre définit le décalage du fuseau horaire personnalisé par rapport au temps universel coordonné (UTC) pour toutes les règles d’ajustement du fuseau horaire. En d’autres termes, le TimeZoneInfo modèle objet suppose que le décalage du fuseau horaire par rapport à UTC est constant pendant toute la durée de vie du fuseau horaire et existe indépendamment des règles d’ajustement particulières. Pour refléter un fuseau horaire qui a changé son décalage par rapport à UTC, vous devez créer un objet fuseau horaire.
Les règles d’ajustement d’un fuseau horaire sont définies en procédant comme suit :
Appel de la CreateFloatingDateRuleCreateFixedDateRule méthode ou pour définir le temps de transition de début et de fin pour chaque règle d’ajustement.
Appel de la CreateAdjustmentRule méthode pour chaque règle d’ajustement.
Affectation des règles d’ajustement à un tableau qui peut être passé en tant que
adjustmentRules
paramètre.