_Este problema foi removido de um tíquete na comunidade de desenvolvedores ._
Atualmente, DateTimeOffset não tem opções para conversões de fuso horário e a API do Windows para TimeZoneInfo não tem suporte para DateTimeOffset
isso leva a ter que escrever um código para converter um deslocamento de data e hora em uma data e hora, usando TimeZoneInfo para converter em um novo Datetime e, em seguida, voltar a DateTimeOffset para que o ponto pretendido no tempo e fuso horário sejam preservados.
esse conjunto de conversões entre formatos e as chamadas de API relacionadas cria a possibilidade de erros na conversão que podem não ser fáceis de detectar se o desenvolvedor não estiver totalmente familiarizado com os detalhes dos fusos horários.
Acho que um novo conjunto de métodos ou uma nova biblioteca de classes seja criado para unificar TimeZoneInfo e DateTimeOffset para permitir que um desenvolvedor peça que um datetimeoffset seja convertido em um novo fuso horário e não precise entrar em uma cadeia de conversões. isso reduziria os erros e tornaria o uso de DateTimeOffset mais simples para a maioria dos desenvolvedores
também DateTimeOffset ToLocal assume a data, hora / fuso horário dos servidores, o que não dá nenhuma opção de conversão para o fuso horário de um usuário para um aplicativo na web, o cliente pode estar em um fuso horário diferente do cliente do navegador.
e um navegador pode precisar ver uma data para um fuso horário em que ele não está.
Obrigado por nos fornecer sua sugestão. Faremos algumas verificações preliminares para garantir que podemos prosseguir. Forneceremos uma atualização assim que o problema for triado pela equipe do produto.
também DateTimeOffset ToLocal assume a data, hora / fuso horário dos servidores, o que não dá nenhuma opção de conversão para o fuso horário de um usuário para um aplicativo na web, o cliente pode estar em um fuso horário diferente do cliente do navegador.
e um navegador pode precisar ver uma data para um fuso horário em que ele não está.
Esse. É por isso que DateTimeKind
está quebrado. Utc
/ Local
/ Unknown
(ou Other
em APIs semelhantes) mostram um mal-entendido do domínio.
Vou reiterar que devemos fornecer uma API de data / hora completa e moderna, que seria semelhante a java.time e NodaTime.
Observe que, na maioria dos casos, DateTimeOffset
também não é o tipo de domínio adequado, já que as informações instantâneas não absolutas geralmente são registradas como DateTimeZoned
(que atualiza automaticamente o deslocamento ao adicionar a qualquer momento).
Comentários muito úteis
Esse. É por isso que
DateTimeKind
está quebrado.Utc
/Local
/Unknown
(ouOther
em APIs semelhantes) mostram um mal-entendido do domínio.Vou reiterar que devemos fornecer uma API de data / hora completa e moderna, que seria semelhante a java.time e NodaTime.
Observe que, na maioria dos casos,
DateTimeOffset
também não é o tipo de domínio adequado, já que as informações instantâneas não absolutas geralmente são registradas comoDateTimeZoned
(que atualiza automaticamente o deslocamento ao adicionar a qualquer momento).