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 foi encontrado no computador local.
Sobrecargas
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean) |
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, regras de horário de verão e um valor que indica se o objeto retornado reflete as informações sobre horário de verão. |
CreateCustomTimeZone(String, TimeSpan, String, String) |
Cria um fuso horário personalizado com um identificador especificado, um desvio de UTC (Tempo Universal Coordenado), um nome de exibição e um nome de exibição do horário 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 e um nome e regras do horário de verão. |
CreateCustomTimeZone(String, TimeSpan, String, String, String, TimeZoneInfo+AdjustmentRule[], Boolean)
- 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, regras de horário de verão e um valor que indica se o objeto retornado reflete as informações sobre 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 objeto TimeSpan 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 da hora padrão do novo fuso horário.
- daylightDisplayName
- String
O nome do horário de versão do novo fuso horário.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Uma matriz de objetos TimeZoneInfo.AdjustmentRule que aumenta o deslocamento base do UTC para um período específico.
- disableDaylightSavingTime
- Boolean
true
para descartar informações relacionadas ao horário de verão presentes no adjustmentRules
com o novo objeto; caso contrário, false
.
Retornos
O novo fuso horário. Se o parâmetro disableDaylightSavingTime
é true
, o objeto retornado não tem nenhum dado de horário de verão.
Exceções
O parâmetro id
é null
.
O parâmetro id
é uma cadeia de caracteres vazia ("").
- ou -
O parâmetro baseUtcOffset
não representa um número inteiro de minutos.
O parâmetro baseUtcOffset
é maior que 14 horas ou menor que -14 horas.
As regras de ajuste especificadas no parâmetro adjustmentRules
se sobrepõem.
- ou -
As regras de ajuste especificadas no parâmetro adjustmentRules
não estão em ordem cronológica.
- ou -
Um ou mais elementos em adjustmentRules
são null
.
- ou -
Uma data pode ter várias regras de ajuste aplicadas a ela.
- ou -
A soma do parâmetro baseUtcOffset
e do valor DaylightDelta de um ou mais objetos na matriz adjustmentRules
é maior que 14 horas ou menor que -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 TimeZoneInfo seguir mostra a relação entre os parâmetros fornecidos ao TimeZoneInfo.CreateCustomTimeZone método e os membros do 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 (Hora de Greenwich), entre parênteses. Isso é seguido por uma cadeia de caracteres que identifica o próprio fuso horário ou uma ou mais 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 CreateFloatingDateRule método ou CreateFixedDateRule para definir as regras 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
adjustmentRules
parâ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 nenhuma regra 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
Cria um fuso horário personalizado com um identificador especificado, um desvio de UTC (Tempo Universal Coordenado), um nome de exibição e um nome de exibição do horário 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 horas entre esse fuso horário e o UTC (Horário 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 parâmetro id
é null
.
O parâmetro id
é uma cadeia de caracteres vazia ("").
- ou -
O parâmetro baseUtcOffset
não representa um número inteiro de minutos.
O parâmetro baseUtcOffset
é maior que 14 horas ou menor que -14 horas.
Exemplos
O exemplo a seguir cria um fuso horário personalizado para as regiões de Mawson e Holme Bay da 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 TimeZoneInfo.CreateCustomTimeZone método ou TimeZoneInfo.CreateCustomTimeZone .
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 (Hora de Greenwich), entre parênteses. Isso é seguido por uma cadeia de caracteres que identifica o próprio fuso horário ou uma ou mais 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
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 e um nome e regras do 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 horas entre esse fuso horário e o UTC (Horário Universal Coordenado).
- displayName
- String
O nome de exibição do novo fuso horário.
- standardDisplayName
- String
O nome da hora padrão do novo fuso horário.
- daylightDisplayName
- String
O nome do horário de versão do novo fuso horário.
- adjustmentRules
- TimeZoneInfo.AdjustmentRule[]
Uma matriz que aumenta a diferença UTC de base para um período específico.
Retornos
Um objeto TimeZoneInfo que representa o novo fuso horário.
Exceções
O parâmetro id
é null
.
O parâmetro id
é uma cadeia de caracteres vazia ("").
- ou -
O parâmetro baseUtcOffset
não representa um número inteiro de minutos.
O parâmetro baseUtcOffset
é maior que 14 horas ou menor que -14 horas.
As regras de ajuste especificadas no parâmetro adjustmentRules
se sobrepõem.
- ou -
As regras de ajuste especificadas no parâmetro adjustmentRules
não estão em ordem cronológica.
- ou -
Um ou mais elementos em adjustmentRules
são null
.
- ou -
Uma data pode ter várias regras de ajuste aplicadas a ela.
- ou -
A soma do parâmetro baseUtcOffset
e do valor DaylightDelta de um ou mais objetos na matriz adjustmentRules
é maior que 14 horas ou menor que -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, ele converte a hora local para a 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 TimeZoneInfo.CreateCustomTimeZone método ou TimeZoneInfo.CreateCustomTimeZone .
A tabela a seguir mostra a relação entre os parâmetros fornecidos ao 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 horário 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 (Hora de Greenwich), 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 do UTC é constante durante toda a 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 CreateFixedDateRule 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
adjustmentRules
parâmetro .