TimeZoneInfo.CreateCustomTimeZone Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define um fuso horário que não é encontrado no computador local.
Sobrecargas
| Nome | Description |
|---|---|
| CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean) |
Cria um fuso horário personalizado com um identificador especificado, um deslocamento de UTC (Tempo Universal Coordenado), um nome de exibição, um nome de hora padrão, um nome de horário de verão, regras de horário de verão e um valor que indica se o objeto retornado reflete as informações de horário de verão. |
| CreateCustomTimeZone(String, TimeSpan, String, String) |
Cria um fuso horário personalizado com um identificador especificado, um deslocamento de UTC (Tempo Universal Coordenado), um nome de exibição e um nome de exibição de hora padrão. |
| CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[]) |
Cria um fuso horário personalizado com um identificador especificado, um deslocamento do UTC (Tempo Universal Coordenado), um nome de exibição, um nome de hora padrão, um nome de horário de verão e regras de horário de verão. |
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
Cria um fuso horário personalizado com um identificador especificado, um deslocamento de UTC (Tempo Universal Coordenado), um nome de exibição, um nome de hora padrão, um nome de horário de verão, regras de horário de verão e um valor que indica se o objeto retornado reflete as informações de horário de verão.
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
Parâmetros
- id
- String
O identificador do fuso horário.
- baseUtcOffset
- TimeSpan
Um TimeSpan objeto que representa a diferença de tempo entre esse fuso horário e o UTC (Tempo Universal Coordenado).
- displayName
- String
O nome de exibição do novo fuso horário.
- standardDisplayName
- String
O nome de hora padrão do novo fuso horário.
- daylightDisplayName
- String
O nome do horário de verão do novo fuso horário.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Uma matriz de TimeZoneInfo.AdjustmentRule objetos que aumentam o deslocamento UTC base para um determinado período.
- disableDaylightSavingTime
- Boolean
true para descartar as informações relacionadas ao horário de verão presentes com adjustmentRules o novo objeto; caso contrário, false.
Retornos
O novo fuso horário. Se o disableDaylightSavingTime parâmetro for true, o objeto retornado não terá dados de horário de verão.
Exceções
O id parâmetro é null.
O id parâmetro é uma cadeia de caracteres vazia ("").
- ou -
O baseUtcOffset parâmetro não representa um número inteiro de minutos.
O baseUtcOffset parâmetro é maior que 14 horas ou menos do que -14 horas.
As regras de ajuste especificadas na sobreposição de adjustmentRules parâmetro.
- ou -
As regras de ajuste especificadas no adjustmentRules parâmetro não estão em ordem cronológica.
- ou -
Um ou mais elementos adjustmentRules são null.
- ou -
Uma data pode ter várias regras de ajuste aplicadas a ela.
- ou -
A soma do baseUtcOffset parâmetro e do DaylightDelta valor de um ou mais objetos na adjustmentRules matriz é maior que 14 horas ou menos de -14 horas.
Exemplos
O exemplo a seguir cria um fuso horário personalizado para a estação Palmer e a Ilha Anvers na Antártida. Ele define o disableDaylightSavingTime parâmetro na chamada para o TimeZoneInfo.CreateCustomTimeZone método como true. Em seguida, ele exibe o nome do horário de verão do novo fuso horário, se houver, e o número de regras de ajuste para confirmar que o novo fuso horário não tem informações de horário de verão.
// 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)
Comentários
Você pode usar essa sobrecarga do TimeZoneInfo.CreateCustomTimeZone método para criar um fuso horário personalizado cujo suporte para o horário de verão pode ser determinado por condições em tempo de execução.
A tabela a seguir mostra a relação entre os parâmetros fornecidos para o TimeZoneInfo.CreateCustomTimeZone método e os membros do TimeZoneInfo objeto que são retornados pela chamada de método.
| Parâmetro CreateCustomTimeZone | Propriedade TimeZoneInfo |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName se disableDaylightSavingTime for false; String.Empty se disableDaylightSavingTime for true. |
adjustmentRules |
Uma matriz de TimeZoneInfo.AdjustmentRule objetos retornados pelo GetAdjustmentRules método se disableDaylightSavingTime for false; uma matriz vazia retornada pelo GetAdjustmentRules método se disableDaylightSavingTime for true. |
disableDaylightSavingTime |
Não SupportsDaylightSavingTime. |
Normalmente, o nome de hora padrão do fuso horário e seu identificador são os mesmos. No entanto, o comprimento do identificador do fuso horário não deve exceder 32 caracteres. A cadeia de caracteres passada para o displayName parâmetro segue um formato bastante padrão. A primeira parte do nome de exibição é o deslocamento base do fuso horário do Tempo Universal Coordenado, que é indicado pelo acrônimo GMT (para Greenwich Mean Time), entre parênteses. Isso é seguido por uma cadeia de caracteres que identifica o fuso horário em si, ou uma ou mais das cidades, regiões ou países no fuso horário ou ambos. Por exemplo:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
As regras de ajuste de um fuso horário são definidas fazendo o seguinte:
Chamar o método ou o CreateFloatingDateRuleCreateFixedDateRule método para definir as regras de transição iniciais e finais para cada regra de ajuste.
Chamando o CreateAdjustmentRule método para cada regra de ajuste.
Atribuir as regras de ajuste a uma matriz que pode ser passada como o
adjustmentRulesparâmetro.
Se disableDaylightSavingTime o parâmetro for false, a operação desse método será idêntica à TimeZoneInfo.CreateCustomTimeZone sobrecarga. Se disableDaylightSavingTime for true, o objeto retornado não inclui regras de ajuste e uma DaylightName propriedade cujo valor é uma cadeia de caracteres vazia.
Confira também
Aplica-se a
CreateCustomTimeZone(String, TimeSpan, String, String)
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
Cria um fuso horário personalizado com um identificador especificado, um deslocamento de UTC (Tempo Universal Coordenado), um nome de exibição e um nome de exibição de hora padrão.
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
Parâmetros
- id
- String
O identificador do fuso horário.
- baseUtcOffset
- TimeSpan
Um objeto que representa a diferença de tempo entre esse fuso horário e o UTC (Tempo Universal Coordenado).
- displayName
- String
O nome de exibição do novo fuso horário.
- standardDisplayName
- String
O nome do horário padrão do novo fuso horário.
Retornos
O novo fuso horário.
Exceções
O id parâmetro é null.
O id parâmetro é uma cadeia de caracteres vazia ("").
- ou -
O baseUtcOffset parâmetro não representa um número inteiro de minutos.
O baseUtcOffset parâmetro é maior que 14 horas ou menos do que -14 horas.
Exemplos
O exemplo a seguir cria um fuso horário personalizado para as regiões de Mawson e Holme Bay, na Antártida. Em seguida, ele exibe o resultado da conversão da hora local para a hora no novo fuso horário.
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)
Comentários
Essa sobrecarga do CreateCustomTimeZone(String, TimeSpan, String, String) método é adequada para criar um fuso horário sem ajustes (ou seja, um fuso horário que não dá suporte ao horário de verão). Para definir um fuso horário que inclua ajustes para o horário de verão, use o método ou o TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone método.
A tabela a seguir mostra a relação entre os parâmetros fornecidos para o TimeZoneInfo.CreateCustomTimeZone método e as propriedades do TimeZoneInfo objeto que são retornadas pela chamada de método.
| Parâmetro CreateCustomTimeZone | Propriedade TimeZoneInfo |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
Normalmente, o nome de hora padrão do fuso horário e seu identificador são os mesmos. No entanto, o comprimento do identificador do fuso horário não deve exceder 32 caracteres. A cadeia de caracteres passada para o displayName parâmetro segue um formato bastante padrão. A primeira parte do nome de exibição é o deslocamento base do fuso horário do Tempo Universal Coordenado, que é indicado pelo acrônimo GMT (para Greenwich Mean Time), entre parênteses. Isso é seguido por uma cadeia de caracteres que identifica o fuso horário em si, ou uma ou mais das cidades, regiões ou países no fuso horário ou ambos. Por exemplo:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
Confira também
Aplica-se a
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[])
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
Cria um fuso horário personalizado com um identificador especificado, um deslocamento do UTC (Tempo Universal Coordenado), um nome de exibição, um nome de hora padrão, um nome de horário de verão e regras de horário de verão.
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
Parâmetros
- id
- String
O identificador do fuso horário.
- baseUtcOffset
- TimeSpan
Um objeto que representa a diferença de tempo entre esse fuso horário e o UTC (Tempo Universal Coordenado).
- displayName
- String
O nome de exibição do novo fuso horário.
- standardDisplayName
- String
O nome de hora padrão do novo fuso horário.
- daylightDisplayName
- String
O nome do horário de verão do novo fuso horário.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Uma matriz que aumenta o deslocamento utc base para um determinado período.
Retornos
Um TimeZoneInfo objeto que representa o novo fuso horário.
Exceções
O id parâmetro é null.
O id parâmetro é uma cadeia de caracteres vazia ("").
- ou -
O baseUtcOffset parâmetro não representa um número inteiro de minutos.
O baseUtcOffset parâmetro é maior que 14 horas ou menos do que -14 horas.
As regras de ajuste especificadas na sobreposição de adjustmentRules parâmetro.
- ou -
As regras de ajuste especificadas no adjustmentRules parâmetro não estão em ordem cronológica.
- ou -
Um ou mais elementos adjustmentRules são null.
- ou -
Uma data pode ter várias regras de ajuste aplicadas a ela.
- ou -
A soma do baseUtcOffset parâmetro e do DaylightDelta valor de um ou mais objetos na adjustmentRules matriz é maior que 14 horas ou menos de -14 horas.
Exemplos
O exemplo a seguir cria um fuso horário personalizado para a estação Palmer e a Ilha Anvers na Antártida. Em seguida, converte a hora local na hora no novo fuso horário e exibe o resultado.
// 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)
Comentários
Essa sobrecarga do TimeZoneInfo.CreateCustomTimeZone método é adequada para criar um fuso horário que dá suporte ao horário de verão. Para definir um fuso horário que não dá suporte ao horário de verão, use o método ou o TimeZoneInfo.CreateCustomTimeZoneTimeZoneInfo.CreateCustomTimeZone método.
A tabela a seguir mostra a relação entre os parâmetros fornecidos para o TimeZoneInfo.CreateCustomTimeZone método e os membros do TimeZoneInfo objeto que são retornados pela chamada de método.
| Parâmetro CreateCustomTimeZone | Membro TimeZoneInfo |
|---|---|
id |
Id |
baseUtcOffset |
BaseUtcOffset |
displayName |
DisplayName |
standardDisplayName |
StandardName |
daylightDisplayName |
DaylightName |
adjustmentRules |
Uma matriz de System.TimeZoneInfo.AdjustmentRule objetos retornados pelo GetAdjustmentRules método. |
Normalmente, o nome de hora padrão do fuso horário e seu identificador são os mesmos. No entanto, o comprimento do identificador do fuso horário não deve exceder 32 caracteres. A cadeia de caracteres passada para o displayName parâmetro segue um formato bastante padrão. A primeira parte do nome de exibição é o deslocamento base do fuso horário do Tempo Universal Coordenado, que é indicado pelo acrônimo GMT (para Greenwich Mean Time), entre parênteses. Isso é seguido por uma cadeia de caracteres que identifica o fuso horário em si, ou uma ou mais das cidades, regiões ou países no fuso horário ou ambos. Por exemplo:
(GMT+02:00) Athens, Beirut, Istanbul, Minsk
(GMT-02:00) Mid-Atlantic
(GMT-07:00) Mountain Time (US & Canada)
O baseUtcOffset parâmetro define o deslocamento do fuso horário personalizado do UTC (Tempo Universal Coordenado) para todas as regras de ajuste do fuso horário. Em outras palavras, o TimeZoneInfo modelo de objeto pressupõe que o deslocamento do fuso horário de UTC é constante ao longo da vida útil do fuso horário e existe independentemente de regras de ajuste específicas. Para refletir um fuso horário que alterou seu deslocamento de UTC, você deve criar um novo objeto de fuso horário.
As regras de ajuste de um fuso horário são definidas fazendo o seguinte:
Chamando o CreateFloatingDateRule método ou o CreateFixedDateRule método para definir o tempo de transição inicial e final para cada regra de ajuste.
Chamando o CreateAdjustmentRule método para cada regra de ajuste.
Atribuir as regras de ajuste a uma matriz que pode ser passada como o
adjustmentRulesparâmetro.