Você pode usar só um atributo Calendar para representar a data e a hora. Só precisa separá-los na apresentação ao usuário. Aí você usa o DateFormat com o padrão específico, um para data outro para hora.
Tai…
Tipo a minha ideia era ter uma data formatada… mas ta dando mto rolo…
eu fiz desse jeito mas no final qdo imprimo ela sai do msm q se eu tivesse feito.
new Date();
ta _________ai vai a classe.
Eu ate mudei os atributos de Calendar pra Data pra v c melhorava minha situação mas num teve jeito __________
package Entity;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "Informativo")
public class Informativo implements Serializable{
@Id
@GeneratedValue
private int id;
private Date hora;
private Date data;
private String titulo;
private String texto;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getHora() {
return hora;
}
public void setHora(Date hora) {
this.hora = hora;
}
public Date getData() throws ParseException {
data = new Date();
Calendar calendar = Calendar.getInstance();
DateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
formatDate.format(calendar.getTime());
return data;
}
public void setData(Date data) {
this.data = data;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
public static void main(String[] args) throws ParseException {
System.out.println(new Informativo().getData());
}
}
Você confunde o objeto Date (que ao ser impresso sempre vai mostrar daquele jeito comprido, com data, hora, fuso horário e outras coisas malucas) com a sua representação String.
Um objeto Date é na verdade apenas um número em milissegundos (na verdade é o número de milissegundos que se passaram desde 1/1/1970); na hora de imprimir com toString() o Java converte esse tal número para aquela coisa que você acha que está errada, porque não está do jeito que você quer.
O que você precisa é usar o SimpleDateFormat para transformar para a string no jeito que você quer.
Vou dar um exemplo. Se você ganhasse 100 milhões de centavos na loteria, é a mesma coisa que ganhar 1 milhão de reais, ou (se o câmbio estiver a 1,84) 543.478,26 dólares?
É claro que é.
Da mesma forma, um Date sempre contém 100 milhões de centavos; é na hora de você visualizar que você passa para 1 milhão de reais, ou para 543.478,26 dólares.