Inverter data de formato: dd/mm/aaaa <=> aaaa/mm/dd
Pessoal
Bom dia
Estou gerando um arquivo TXT com base em uma tabela de um BD Access,,, com relação a gerar o aquivo esta sob controle, porem me deparei com detalhe que não achei um solução ainda:
Tenho um campo de data com o formato: DD/MM/AAAA, quando na gravação no TXT preciso inverter o formato para: AAAA/MM/DD e retirar as barras ficando assim:
Na Tabela: 31/05/2010
No TXT: 20100531
Alguem poderia me ajudar?
Grande abraço a todos
Arildo Augusto
Curtidas 0
Respostas
Ulisses Silva
31/05/2010
Arlindo,
Me parece que você já fez um poste semelhante porém, disse que deveria ser em Delphi.
Como você postou novamente na sala referente a tópicos sobre a linguagem Java, verifique se o exemplo abaixo serve como ajuda:
Caso sua necessidade seja de algo em Delphi, tente verificar a possibilidade do registro de sua dúvida no respectiva sala que aborda que trata de assuntos relacionados a linguagem solicitada.
Até...
//cria o formatador
SimpleDateFormat formatador = new SimpleDateFormat("yyyyMMdd");
// cria a string 4.String novoFormato = novoFormatador.format(data);
GOSTEI 0
Ulisses Silva
31/05/2010
Correção:
Segue exemplo código limpo e formatado:
Até...
//cria o formatador
SimpleDateFormat formatador = new SimpleDateFormat("yyyyMMdd");
// cria a string
String novoFormato = novoFormatador.format(data);
GOSTEI 0
Arildo Augusto
31/05/2010
Pessoal,,
Consegui resolver em Delphi mesmo com o uso de duas (2) funções
function CDateStr(const date:tdatetime):string;
var
fano, fmes, fdia, fhora, fmin, fsec, fmilsec : word;
begin
decodeDateTime(date,fano,fmes,fdia,fhora,fmin,fsec,fmilsec);
result:=zeroesquerda2(fano,4)+zeroesquerda2(fmes,2)+zeroesquerda2(fdia,2)+zeroesquerda2(fhora,2)+zeroesquerda2(fmin,2)+zeroesquerda2(fsec,2);
end; **--- function ZeroEsquerda2(const I: integer; const Casas: byte): string;
var
Ch: Char;
begin
Result := IntToStr(I);
if Length(Result) > Casas then begin
Ch := '*';
Result := '';
end
else
Ch := '0';
while length(Result) < Casas do
result:=Ch+Result; Pode não ser a melhor forma, porem resolveu o meu problema, Caso puder ser melhorada,, fiquem a vontade. Mesmo assim agradeço ao Ulisses pela resposta,, Fiquem todos com DEUS
var
fano, fmes, fdia, fhora, fmin, fsec, fmilsec : word;
begin
decodeDateTime(date,fano,fmes,fdia,fhora,fmin,fsec,fmilsec);
result:=zeroesquerda2(fano,4)+zeroesquerda2(fmes,2)+zeroesquerda2(fdia,2)+zeroesquerda2(fhora,2)+zeroesquerda2(fmin,2)+zeroesquerda2(fsec,2);
end; **--- function ZeroEsquerda2(const I: integer; const Casas: byte): string;
var
Ch: Char;
begin
Result := IntToStr(I);
if Length(Result) > Casas then begin
Ch := '*';
Result := '';
end
else
Ch := '0';
while length(Result) < Casas do
result:=Ch+Result; Pode não ser a melhor forma, porem resolveu o meu problema, Caso puder ser melhorada,, fiquem a vontade. Mesmo assim agradeço ao Ulisses pela resposta,, Fiquem todos com DEUS
GOSTEI 0
Dyego Carmo
31/05/2010
Resolvido ?:
GOSTEI 0
Arildo Augusto
31/05/2010
Com certeza
GOSTEI 0
Dyego Carmo
31/05/2010
OK , então pode fechar !
GOSTEI 0