formatar data e valor dentro do JSON/Delphi
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
Clique aqui para fazer login e interagir na Comunidade :)