Problema para formatar hora

8 respostas
R

galera tô fazendo uma aplicação com banco de dados, e em uma das tabelas do banco tenho a coluna data e a coluna hora, queria poder formatar a hora
para informar para o usuario q ele está digitando uma hora invalida, eu usei o sempleDateformat pra data e deu certo, fiz um metodo parecido pra hora
e não deu certo, alguem pode me ajudar… abraços

8 Respostas

A

você passou o parâmetro correto para o construtor da classe SimpleDateFormat para configuração de hora?

R

[code]
public Date formatarHora(String hora) throws ParseException{

DateFormat formatter = new SimpleDateFormat("HH:mm");
return new Date(formatter.parse(hora).getTime());
}
[code]
fiz isso com a data e deu certo, pensei q daria com a hora mas não deu...

A

http://javafree.uol.com.br/topic-9720-Converter-campo-do-tipo-String-para-Date.html
http://www.guj.com.br/java/259045-resolvido-conversao-de-string-para-date
http://www.guj.com.br/java/272382-converter-string-para-date

R

olhei os links q vc me passou, mas o meu problema é com a hora, a data funciona perfeitamente, fiz tipo uma agenda,
que preciso agenda uma data e uma hora para um cliente, e tenho duas colunas no BD uma coluna é a hora e a outra e a hora…
entendeu amigão… abraços

R
public Date formatarHora(String hora) throws ParseException {

        DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
       // formatter.setLenient(false);
        return new Date(formatter.parse(hora).getTime());

    }
    

   public void agendar(){
        int resultado = JOptionPane.showConfirmDialog(this,"Tem certeza que deseja agendar ?", "Agendamento",
                    JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
        
        if (resultado != JOptionPane.YES_NO_OPTION){
                return;
        }
        
        try {
            
        Agenda a = new Agenda();
        a.setTotal(Float.parseFloat(txTotal.getText()));
        a.setTipoServico((TipoDeServico)(jComboBoxTipo.getSelectedItem()));
        a.setAnimal((Animal)(jComboBoxAnimal.getSelectedItem()));
        
        Date data = daoAgenda.formatarData(txData.getText());
        Date hora = daoAgenda.formatarHora(txHora.getText());
        
        a.setData(data);
        a.setHora(hora);
                
        daoAgenda.addCompromisso(a);
        // atualiza os dados na tabela agenda
        controleAgenda.carregarDadosAgenda();
        controleAgenda.setStatus("Agendamento inserido com sucesso!");
        setVisible(false);
        
        }catch (ParseException e) {
             JOptionPane.showMessageDialog(this, "Data possui formato inválido!!!", "Erro", JOptionPane.ERROR_MESSAGE);                  
        } catch (SQLException e) {
            e.getLocalizedMessage();
            JOptionPane.showMessageDialog(this, "Erro ao inserir agendamento!!!", "Erro", JOptionPane.ERROR_MESSAGE);             
        }catch(NumberFormatException e){
            JOptionPane.showMessageDialog(this, "Total possui dado inválido!!!", "Erro", JOptionPane.ERROR_MESSAGE);                         
     }
  }
R

para a data eu fiz assim…

public Date formatarHora(String hora) throws ParseException {  
  
       DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");  
      // formatter.setLenient(false);  
       return new Date(formatter.parse(hora).getTime());  
  
   }

com a data funciona perfeitamente, eu sei que o metodo formatarHora tah errado, mas pensei q daria certo, ae ele grava no banco de dados
1970/01/01 sempre assim… veleu

A

acredito que a classe Calendar também não vai satisfazer a sua necessidade.

a outra opção é você usar a biblioteca Joda Time e procurar na sua API algum método de conversão de String para Date no formato Hora ou outra classe semelhante da biblioteca.

R

consegui aqui, foi burrice minha, troquei date por time no banco e no metodo formatarhora tb, ae funcionou beleza… obrigado pela ajuda, valeu mesmo…

Criado 18 de julho de 2013
Ultima resposta 18 de jul. de 2013
Respostas 8
Participantes 2