DataSetConverter4Delphi icon indicating copy to clipboard operation
DataSetConverter4Delphi copied to clipboard

Timezone

Open giulianon opened this issue 4 years ago • 3 comments

Seria interessante criar um parâmetro incluir ou não a timezone já que a própria função DateToISO8601 permite isso.

No meu caso estou tendo que remover o Z do final da data para poder formatar a mesma no javascript, já que formatando com o Z a hora fica errada.

TFieldType.ftDate, TFieldType.ftTimeStamp, TFieldType.ftDateTime, TFieldType.ftTime:
begin
  Result.AddPair(key, TJSONString.Create(DateToISO8601(dataSet.Fields[i].AsDateTime, FALSE)))
end;

giulianon avatar Mar 10 '20 22:03 giulianon

@giulianon seria isso que voce queria? Se passar o false vai sair a data com -03:00 no final...

DateToISO8601(LField.AsDateTime, False) {"id":-1,"name":"Vinicius Scandelai Sanchez","date":"2020-03-18T11:55:27.313-03:00"}

DateToISO8601(LField.AsDateTime, True) {"id":-1,"name":"Vinicius Scandelai Sanchez","date":"2020-03-18T11:55:27.313Z"}

viniciussanchez avatar Mar 18 '20 14:03 viniciussanchez

Exatamente. Perfeito. Esse parâmetro teria que ser exposto para eu poder ativar ou desativar conforme a situação.

giulianon avatar Mar 18 '20 16:03 giulianon

Acredito que isso vai muito da abordagem que cada um utiliza para o padrão ISO 8601. Neste caso, acredito que ficaria ruim criar uma configuração para isso, mas acredito que poderíamos mudar o comportamento do código para sempre passar False e formatar com -03:00 por exemplo ao invés de usar o Z.

ezequieljuliano avatar Mar 20 '20 16:03 ezequieljuliano