ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Converter yyyy-mm-dd hh:nn:ss para dd/mm/yyyy hh:nn:ss?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17343

MensagemEnviada: Ter Dez 03, 2019 3:25 pm    Assunto: Converter yyyy-mm-dd hh:nn:ss para dd/mm/yyyy hh:nn:ss? Responder com Citação

Converter yyyy-mm-dd hh:nn:ss para dd/mm/yyyy hh:nn:ss?

Tentei assim mais sem sucesso

Código:
function fConvertData(S, FD: String): TDateTime;
  var
    T: TFormatSettings;
  begin
    T.ShortDateFormat := FD;
  //  T.LongDateFormat  := 'yyyy-mm-dd hh:mm:ss';
    T.DateSeparator := '-';
    Result := StrToDate(S, T);
  end;


Passando os parâmetros data formato string '2019-12-03' e 'yyyy-mm-dd'
Vem correto agora se for data e hora não ta dando certo.


Data sem horas funciona
_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2907
Localização: Belo Horizonte - MG

MensagemEnviada: Ter Dez 03, 2019 4:23 pm    Assunto: Responder com Citação

Faça um teste trocando na função StrToDate por StrToDateTime. Troque:

Código:
Result := StrToDate(S, T);

Por:
Código:
Result := StrToDateTime(S, T);

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17343

MensagemEnviada: Ter Dez 03, 2019 4:29 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Faça um teste trocando na função StrToDate por StrToDateTime. Troque:

Código:
Result := StrToDate(S, T);

Por:
Código:
Result := StrToDateTime(S, T);


Gerou esse erro
Código:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EConvertError with message ''29/11/2019 15:44:51' is not a valid date and time'.
---------------------------
Break   Continue   Help   
---------------------------

_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2907
Localização: Belo Horizonte - MG

MensagemEnviada: Ter Dez 03, 2019 4:31 pm    Assunto: Responder com Citação

Nos meus testes aqui funcionou, veja:

Função:
Código:
function fConvertData(S, FD: String): TDateTime;
var
  T: TFormatSettings;
begin
  T.ShortDateFormat := FD;
  // T.LongDateFormat  := 'yyyy-mm-dd hh:mm:ss';
  T.DateSeparator := '-';
  Result := StrToDateTime(S, T);
end;

Exemplo de uso:

Código:
var
  data: TDateTime;
begin
  data:= fConvertData('2019-12-03 16:00:00', 'yyyy-mm-dd');

  ShowMessage(DateTimeToStr(data));
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17343

MensagemEnviada: Ter Dez 03, 2019 4:54 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Nos meus testes aqui funcionou, veja:

Função:
Código:
function fConvertData(S, FD: String): TDateTime;
var
  T: TFormatSettings;
begin
  T.ShortDateFormat := FD;
  // T.LongDateFormat  := 'yyyy-mm-dd hh:mm:ss';
  T.DateSeparator := '-';
  Result := StrToDateTime(S, T);
end;

Exemplo de uso:

Código:
var
  data: TDateTime;
begin
  data:= fConvertData('2019-12-03 16:00:00', 'yyyy-mm-dd');

  ShowMessage(DateTimeToStr(data));
end;


Tive que dar um create pt-BR na função
Código:
function fConvertData(S, FD: String): TDateTime;
var
  T: TFormatSettings;
begin
  T := TFormatSettings.Create('pt-BR');
  T.ShortDateFormat := FD;
  T.DateSeparator := '-';
  Result := StrToDateTime(S, T);
end;


Se não não funciona corretamente dessa forma
Código:
data:= fConvertData('2019-12-03 16:25:15', 'yyyy-mm-dd');


Mais agora deu certo natanbh1. Muito obrigado
_________________
Quer uma bateria musical profissional completa em seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.hhopdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB