Fórum formatar data e valor dentro do JSON/Delphi #617460
05/01/2022
0
Bom dia pessoal. Estou querendo formatar a data e valor retornado de um Json. A data esta saindo assim: 2022-01-03T00:00:00-03:00 (preciso que ela saia no formato brasileiro mesmo, somente 03-01-2022) e o valor pra ele deixar no modo real pois ele esta saindo assim: 551054.56 (preciso que ele saia 551.054,56).
Abaixo esta o JSON:
Estou jogando algumas informações acima dentro de um TMemo
Retorno dentro do Memo:
abaixo segue o codigo que estou usando dentro do botão:
Desde já grato pela ajuda..
Abaixo esta o JSON:
[{"nome":"LOTOF\u00C1CIL","numero_concurso":2412,"data_concurso":"2022-01-03T00:00:00-03:00","data_concurso_milliseconds":1641178800000,"local_realizacao":"S\u00C3O PAULO, SP","rateio_processamento":false,"acumulou":false,"valor_acumulado":0,"dezenas":["01","04","06","07","08","09","11","13","14","15","17","18","19","21","24"],"premiacao":[{"nome":"15 Acertos","quantidade_ganhadores":3,"valor_total":551054.56,"acertos":15},{"nome":"14 Acertos","quantidade_ganhadores":301,"valor_total":1645.14,"acertos":14},{"nome":"13 Acertos","quantidade_ganhadores":9466,"valor_total":25,"acertos":13},{"nome":"12 Acertos","quantidade_ganhadores":111929,"valor_total":10,"acertos":12},{"nome":"11 Acertos","quantidade_ganhadores":615719,"valor_total":5,"acertos":11}],"local_ganhadores":[{"local":"Canal Eletr\u00F4nico","cidade":"","uf":"","quantidade_ganhadores":1,"canal_eletronico":true},{"local":"BRASILIA\/DF","cidade":"BRASILIA","uf":"DF","quantidade_ganhadores":1,"canal_eletronico":false},{"local":"BELO HORIZONTE\/MG","cidade":"BELO HORIZONTE","uf":"MG","quantidade_ganhadores":1,"canal_eletronico":false}],"arrecadacao_total":19016535,"concurso_proximo":2413,"data_proximo_concurso":"2022-01-04T00:00:00-03:00","data_proximo_concurso_milliseconds":1641265200000,"valor_estimado_proximo_concurso":1500000,"valor_acumulado_especial":36275008.79,"nome_acumulado_especial":"Independ\u00EAncia","concurso_especial":false}]Estou jogando algumas informações acima dentro de um TMemo
Retorno dentro do Memo:
2022-01-03T00:00:00-03:00 << aqui é pra ser 03-01-2022 551054.56 << aqui é pra ser 551.054,56
abaixo segue o codigo que estou usando dentro do botão:
procedure TForm1.Button5Click(Sender: TObject);
var
I: Integer;
arrayP, ArrayI, ArrayR, ArrayD: TJSONArray;
JSON2: string;
x, premiacao, realizado, dezenas: Integer;
data : TdateTime;
begin
Memo2.Visible := False;
if Edit1.Text = '' then
begin
ShowMessage('Escolha uma modalidade abaixo.');
end
else
begin
JSON := JSON.LoadFromURL('https://...'
+ Edit1.Text + '...=' + Edit2.Text + '');
for I := 0 to JSON.Count - 1 do
begin
Memo1.Clear;
Memo1.Lines.Add('[' + JSON.Items[I].ToJSON + ']');
end;
end;
JSON2 := Memo1.Lines.Text;
arrayP := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(JSON2), 0) as TJSONArray;
Memo1.Clear;
for x := 0 to arrayP.Size - 1 do
begin
//preciso fazer a formatacao aqui para data dia/mes/ano
//ta me retornando assim 2022-01-03T00:00:00-03:00
//tem que fica somemte 2022-01-03 sendo 03-01-2022
Memo1.Lines.Add(arrayP.Get(x).GetValue<string>('data_concurso'));
//preciso fazer a formatacao aqui para data 777.777,77
//ta me retornando assim 551054.56
//tem que ficar 551.054,56
Memo1.Lines.Add(arrayP.Get(x).GetValue<Double>('valor_acumulado_especial').ToString);
end;
arrayP.Destroy;
end;Desde já grato pela ajuda..
Rubens Pena
Curtir tópico
+ 0
Responder
Posts
05/01/2022
Natanael Ferreira
Veja um exemplo de formatação dos dados.
Tente adaptar ao seu caso:
Tente adaptar ao seu caso:
var
data_concurso, valor_concurso: string;
begin
data_concurso := '2022-01-03T00:00:00-03:00';
ShowMessage(Copy(data_concurso, 9, 2) + '-' + Copy(data_concurso, 6, 2) + '-' + Copy(data_concurso, 1, 4)); // retorna 03/01/2022
valor_concurso := '551054.56';
valor_concurso := StringReplace(valor_concurso, '.', ',', [rfReplaceAll]);
ShowMessage(FormatFloat('#,##0.00', StrToFloatDef(valor_concurso, 0))); // retorna 551.054,56
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)