Olá!
Estou alguns dias brigando com um desafio que obtive na apostila da Caelum, que indica este forum para consultas.
Bem no inicio da apostila, é mostrado como usar o Resultset para fazer uma consulta ao banco de dados. Este result set trás um horário que foi gerado com getTimeInMillis da classe Date, ou seja, um horário totalmente ilegível.
O desafio seria usar a classe SimpleDateFormat neste Resultset e gerar uma data bonitinha ("dd/MM/yyyy"). Já consegui transformar a consulta em uma em uma string e usar o método applyPattern do SimpleDateFormat. O problema é que preciso transformar isso para Calendar para inserir no meu formulário.
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/* a classe contato possui as variáveis da tabela contatos e está encapsulada pelos
* métodos get and set */
public class Contact {
private String name;
private String email;
private String adress;
private Calendar birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
public Calendar getBirthday() {
return birthday;
}
public void setBirthday(Calendar date) {
this.birthday = date;
}
}
public List<Contact> getList() {
try{
List<Contact> contacts = new ArrayList<Contact>();
PreparedStatement stmt = this.connection.prepareStatement("select * from contact");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
//criando objeto contato
Contact contact = new Contact();
contact.setName(rs.getString("name"));
contact.setAdress(rs.getString("adress"));
contact.setEmail(rs.getString("email"));
//formatando a data
Calendar date = Calendar.getInstance();
date.setTime(rs.getDate("birthday"));
contact.setBirthday(date);
//inserindo contatos na lista
contacts.add(contact);
}
rs.close();
stmt.close();
return contacts;
}
catch(SQLException e){
throw new RuntimeException(e);
}
}
Alguém pode me dar uma luz?
Obrigado!