Runtime: TimeZones e DateTimeOffset

Criado em 27 nov. 2019  ·  1Comentário  ·  Fonte: dotnet/runtime

_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


Comentários Originais

Denny Figuerres em 15/03/2019, 08:16:

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á.

Jane Wu [MSFT] em 18/03/2019, 01:36:

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.

api-needs-work api-suggestion area-System.Runtime

Comentários muito úteis

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).

>Todos os comentários

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).

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Timovzl picture Timovzl  ·  3Comentários

GitAntoinee picture GitAntoinee  ·  3Comentários

bencz picture bencz  ·  3Comentários

v0l picture v0l  ·  3Comentários

jkotas picture jkotas  ·  3Comentários