DateTimeOffset.LocalDateTime Propriedade
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.
Obtém um valor DateTime que representa a data e hora locais do objeto DateTimeOffset atual.
public:
property DateTime LocalDateTime { DateTime get(); };
public DateTime LocalDateTime { get; }
member this.LocalDateTime : DateTime
Public ReadOnly Property LocalDateTime As DateTime
Valor da propriedade
A data e hora locais do objeto DateTimeOffset atual.
Exemplos
O exemplo a seguir ilustra várias conversões de DateTimeOffset valores em horários locais no fuso horário padrão do Pacífico dos EUA. Observe que as últimas três vezes são todas ambíguas; a propriedade mapeia todos eles para uma única data e hora no fuso horário padrão do Pacífico.
DateTimeOffset dto;
// Current time
dto = DateTimeOffset.Now;
Console.WriteLine(dto.LocalDateTime);
// UTC time
dto = DateTimeOffset.UtcNow;
Console.WriteLine(dto.LocalDateTime);
// Transition to DST in local time zone occurs on 3/11/2007 at 2:00 AM
dto = new DateTimeOffset(2007, 3, 11, 3, 30, 0, new TimeSpan(-7, 0, 0));
Console.WriteLine(dto.LocalDateTime);
dto = new DateTimeOffset(2007, 3, 11, 2, 30, 0, new TimeSpan(-7, 0, 0));
Console.WriteLine(dto.LocalDateTime);
// Invalid time in local time zone
dto = new DateTimeOffset(2007, 3, 11, 2, 30, 0, new TimeSpan(-8, 0, 0));
Console.WriteLine(TimeZoneInfo.Local.IsInvalidTime(dto.DateTime));
Console.WriteLine(dto.LocalDateTime);
// Transition from DST in local time zone occurs on 11/4/07 at 2:00 AM
// This is an ambiguous time
dto = new DateTimeOffset(2007, 11, 4, 1, 30, 0, new TimeSpan(-7, 0, 0));
Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto));
Console.WriteLine(dto.LocalDateTime);
dto = new DateTimeOffset(2007, 11, 4, 2, 30, 0, new TimeSpan(-7, 0, 0));
Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto));
Console.WriteLine(dto.LocalDateTime);
// This is also an ambiguous time
dto = new DateTimeOffset(2007, 11, 4, 1, 30, 0, new TimeSpan(-8, 0, 0));
Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto));
Console.WriteLine(dto.LocalDateTime);
// If run on 3/8/2007 at 4:56 PM, the code produces the following
// output:
// 3/8/2007 4:56:03 PM
// 3/8/2007 4:56:03 PM
// 3/11/2007 3:30:00 AM
// 3/11/2007 1:30:00 AM
// True
// 3/11/2007 3:30:00 AM
// True
// 11/4/2007 1:30:00 AM
// 11/4/2007 1:30:00 AM
// True
// 11/4/2007 1:30:00 AM
// Current time
let dto = DateTimeOffset.Now
printfn $"{dto.LocalDateTime}"
// UTC time
let dto = DateTimeOffset.UtcNow
printfn $"{dto.LocalDateTime}"
// Transition to DST in local time zone occurs on 3/11/2007 at 2:00 AM
let dto = DateTimeOffset(2007, 3, 11, 3, 30, 0, TimeSpan(-7, 0, 0))
printfn $"{dto.LocalDateTime}"
let dto = DateTimeOffset(2007, 3, 11, 2, 30, 0, TimeSpan(-7, 0, 0))
printfn $"{dto.LocalDateTime}"
// Invalid time in local time zone
let dto = DateTimeOffset(2007, 3, 11, 2, 30, 0, TimeSpan(-8, 0, 0))
printfn $"{TimeZoneInfo.Local.IsInvalidTime dto.DateTime}"
printfn $"{dto.LocalDateTime}"
// Transition from DST in local time zone occurs on 11/4/07 at 2:00 AM
// This is an ambiguous time
let dto = DateTimeOffset(2007, 11, 4, 1, 30, 0, TimeSpan(-7, 0, 0))
printfn $"{TimeZoneInfo.Local.IsAmbiguousTime dto}"
printfn $"{dto.LocalDateTime}"
let dto = DateTimeOffset(2007, 11, 4, 2, 30, 0, TimeSpan(-7, 0, 0))
printfn $"{TimeZoneInfo.Local.IsAmbiguousTime dto}"
printfn $"{dto.LocalDateTime}"
// This is also an ambiguous time
let dto = DateTimeOffset(2007, 11, 4, 1, 30, 0, TimeSpan(-8, 0, 0))
printfn $"{TimeZoneInfo.Local.IsAmbiguousTime dto}"
printfn $"{dto.LocalDateTime}"
// If run on 3/8/2007 at 4:56 PM, the code produces the following
// output:
// 3/8/2007 4:56:03 PM
// 3/8/2007 4:56:03 PM
// 3/11/2007 3:30:00 AM
// 3/11/2007 1:30:00 AM
// True
// 3/11/2007 3:30:00 AM
// True
// 11/4/2007 1:30:00 AM
// 11/4/2007 1:30:00 AM
// True
// 11/4/2007 1:30:00 AM
Dim dto As DateTimeOffset
' Current time
dto = DateTimeOffset.Now
Console.WriteLine(dto.LocalDateTime)
' UTC time
dto = DateTimeOffset.UtcNow
Console.WriteLine(dto.LocalDateTime)
' Transition to DST in local time zone occurs on 3/11/2007 at 2:00 AM
dto = New DateTimeOffset(#03/11/2007 3:30AM#, New Timespan(-7, 0, 0))
Console.WriteLine(dto.LocalDateTime)
dto = New DateTimeOffset(#03/11/2007 2:30AM#, New Timespan(-7, 0, 0))
Console.WriteLine(dto.LocalDateTime)
' Invalid time in local time zone
dto = New DateTimeOffset(#03/11/2007 2:30AM#, New Timespan(-8, 0, 0))
Console.WriteLine(TimeZoneInfo.Local.IsInvalidTime(dto.DateTime))
Console.WriteLine(dto.LocalDateTime)
' Transition from DST in local time zone occurs on 11/4/07 at 2:00 AM
' This is an ambiguous time
dto = New DateTimeOffset(#11/4/2007 1:30AM#, New TimeSpan(-7, 0, 0))
Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto))
Console.WriteLine(dto.LocalDateTime)
dto = New DateTimeOffset(#11/4/2007 2:30AM#, New TimeSpan(-7, 0, 0))
Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto))
Console.WriteLine(dto.LocalDateTime)
' This is also an ambiguous time
dto = New DateTimeOffset(#11/4/2007 1:30AM#, New TimeSpan(-8, 0, 0))
Console.WriteLine(TimeZoneInfo.Local.IsAmbiguousTime(dto))
Console.WriteLine(dto.LocalDateTime)
' If run on 3/8/2007 at 4:56 PM, the code produces the following
' output:
' 3/8/2007 4:56:03 PM
' 3/8/2007 4:56:03 PM
' 3/11/2007 3:30:00 AM
' 3/11/2007 1:30:00 AM
' True
' 3/11/2007 3:30:00 AM
' True
' 11/4/2007 1:30:00 AM
' 11/4/2007 1:30:00 AM
' True
' 11/4/2007 1:30:00 AM
Comentários
Se necessário, a LocalDateTime propriedade converte a data e a hora do objeto atual DateTimeOffset na data e hora do sistema local. A conversão é uma operação em duas etapas:
A propriedade converte o tempo do objeto atual DateTimeOffset em UTC (Tempo Universal Coordenado).
Em seguida, a propriedade converte UTC em hora local.
Não há horários inválidos e os horários ambíguos são mapeados para o horário padrão da zona local. (No entanto, a conversão pode criar uma anomalia: se um DateTimeOffset valor derivado do computador local refletir uma data e hora ambíguas, esse valor poderá ser convertido em UTC e, em seguida, voltar para uma hora local que difere da hora original.) A propriedade aplica quaisquer regras de ajuste no fuso horário local quando executa essa conversão.
Essa propriedade retorna o componente de data e hora de um DateTimeOffset objeto, o que o torna útil para DateTimeOffset conversão DateTime . Além de executar qualquer conversão de tempo necessária, essa propriedade difere da DateTime propriedade definindo o valor da Kind propriedade do objeto retornado DateTime como DateTimeKind.Local.