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
Problema para formatar hora
8 Respostas
você passou o parâmetro correto para o construtor da classe SimpleDateFormat para configuração de hora?
[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...
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
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);
}
}
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
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.
consegui aqui, foi burrice minha, troquei date por time no banco e no metodo formatarhora tb, ae funcionou beleza… obrigado pela ajuda, valeu mesmo…