Erro ao gerar JSON utilizando TJSONMarshal com campo data

Delphi

22/09/2016

Quando tento gerar o JSON esta dando erro em um capo data. O erro que ocorre é este:

The given "16/10/2016" local time is invalid (situated within the missing period prior to DST).

Este erro apenas ocorre com essa data, se for outro dia gera o JSON normal.

Esta é a função q estou utilizando:

function THelper.ObjetoToJson(value: TObject): String;
var lMarshal : TJSONMarshal;
    valorString:String;
    valor:String;

begin

  lMarshal := TJSONMarshal.Create (TJSONConverter.Create);
  valorString := lMarshal.Marshal(value).ToString();

  result := valorString;
  lMarshal.Free;
end;


Nesta função eu apenas passo um objeto e ela gera o JSON.

Quando o campo é data o valor do JSON esta saindo assim:
"dataCheque": "2016-09-16T00:00:10.000Z",


Eu acho q o erro esta no formato o campo esta saindo quando é data, tem alguma maneira de formatar esse campo antes de serializar?
Danilo Pereira

Danilo Pereira

Curtidas 0

Respostas

Jones Granatyr

Jones Granatyr

22/09/2016

Olá Danilo,

Tente formatar a data usando este comando: FormatDateTime('yyyy/mm/dd',data);

Jones
GOSTEI 0
Danilo Pereira

Danilo Pereira

22/09/2016

O campo é do tipo TDateTime, o erro ocorre na hora de transformar o objeto em JSON.
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

22/09/2016

Danilo, esta solução que você mesmo deu no ano passado não é satisfatória?

https://www.devmedia.com.br/forum/erro-ao-serialiazar-objeto-com-campo-data/535883
GOSTEI 0
Danilo Pereira

Danilo Pereira

22/09/2016

Queria ver se tinha outra forma de fazer sem tem q passar todos os campos do tipo Date para String, mas não consegui achar.
GOSTEI 0
POSTAR