Foros del Web » Programación para mayores de 30 ;) » Java »

Me muestra mal la fecha

Estas en el tema de Me muestra mal la fecha en el foro de Java en Foros del Web. Tengo el siguiente metodo en una clase Visor: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original public static void mostrarFechas ( Persona persona ) {     ...
  #1 (permalink)  
Antiguo 09/06/2015, 07:58
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 11 años, 5 meses
Puntos: 1
Me muestra mal la fecha

Tengo el siguiente metodo en una clase Visor:

Código Java:
Ver original
  1. public static void mostrarFechas(Persona persona){
  2.         String mascara = "dd/MM/yyyy";
  3.  
  4.         SimpleDateFormat sdf = new SimpleDateFormat(mascara);
  5.  
  6.         System.out.println("la persona nacio el:" + sdf.format(persona.getFechaNac()));
  7.    
  8.        
  9.     }

Pero obtengo el año 1969...

Código Java:
Ver original
  1. Visor V1=new Visor();
  2.         V1.mostrarFechas(P1);

P1 es profesor deriva de persona:

Código Java:
Ver original
  1. P1=new Profesor("omar","yañez","DNI",new Date(12/02/2014),(long)35698326,"matematicas",(long)12);
  #2 (permalink)  
Antiguo 09/06/2015, 08:08
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Me muestra mal la fecha

new Date(12/02/2014)

¿Que crees que es eso? ¿una string, un número?

Revisa los constructures de Date y entenderás qué es lo que estás haciendo mal.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 09/06/2015, 10:28
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Me muestra mal la fecha

Cita:
Iniciado por Xerelo Ver Mensaje
new Date(12/02/2014)

¿Que crees que es eso? ¿una string, un número?

Revisa los constructures de Date y entenderás qué es lo que estás haciendo mal.
Ese constructor esta deprecado, se debe usar calendar en su lugar.
Código Java:
Ver original
  1. String mascara = "dd/MM/yyyy";
  2.  
  3.         SimpleDateFormat sdf = new SimpleDateFormat(mascara);
  4.         Calendar fechas = Calendar.getInstance();

Código Java:
Ver original
  1. A1=new Alumno("Giuliano","Caruso","DNI", fechas.set(12, 12, 12),(long) 35716117, (long)3265, fechas.set(12,02,1999),Alumno.invitado);
Ahora el constructor lo toma como void no como calendar, y ya modifique los atributos y el constructor de persona
  #4 (permalink)  
Antiguo 09/06/2015, 10:34
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Me muestra mal la fecha

Cita:
Ese constructor esta deprecado, se debe usar calendar en su lugar.
No

new Date(12/02/2014)

no es el constructor de String (que es el que está deprecated), TODAS las string literales van entre "" ¿dónde están las tuyas?

Lo que estabas haciendo es pasar un long que sería el resultado de la siguiente division 12/02/2014, es decir 0.

Por otra parte, efectivamente utilizar GregorianCalendar para crear fechas es lo correcto.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 13/06/2015, 08:33
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Me muestra mal la fecha

me muestra 14/06/0018 si hago:

Código Java:
Ver original
  1. System.out.println(A1.getFechaNac());
A1 es de tipo Alumno que hereda de persona...

Ya pase todos los atributos a GregorianCalendar y los getters setters y constructores tambien...

Código Java:
Ver original
  1. public class Persona {
  2.     protected String Nombre,Apellido;
  3.     protected GregorianCalendar fechaNac;
  4.     protected String tipoDoc;
  5.     protected Long numDoc;
  6.     public String getNombre() {
  7.         return Nombre;
  8.     }
  9.     public GregorianCalendar fechaValida(){
  10.         GregorianCalendar c = (GregorianCalendar) Calendar.getInstance();
  11.  
  12.        
  13.         c.add(Calendar.YEAR,-18);
  14.  
  15.  
  16.         return c;
  17.     }
  18.     public void setNombre(String nombre) {
  19.         Nombre = nombre;
  20.     }
  21.     public String getApellido() {
  22.         return Apellido;
  23.     }
  24.     public void setApellido(String apellido) {
  25.         Apellido = apellido;
  26.     }
  27.     public GregorianCalendar getFechaNac() {
  28.        
  29.         return fechaNac;
  30.     }
  31.     public void setFechaNac(GregorianCalendar fechaNac) {
  32.         this.fechaNac=fechaNac;
  33.     }
  34.     public String getTipoDoc() {
  35.         return tipoDoc;
  36.     }
  37.     public void setTipoDoc(String tipoDoc) {
  38.         this.tipoDoc = tipoDoc;
  39.     }
  40.     public Long getNumDoc() {
  41.         return numDoc;
  42.     }
  43.     public void setNumDoc(Long numDoc) {
  44.         this.numDoc = numDoc;
  45.     }
  46.    
  47.     public String obtenerNombreCompleto(){
  48.         /* @param Nombre=es el nombre de la persona
  49.          * @param Apellido=es el apellido de la persona
  50.          * @return Devuelve el nombre completo
  51.          */
  52.         return (Nombre + Apellido);
  53.     }
  54.     public Persona(){
  55.        
  56.     }
  57.     public Persona(String NombreP,String ApellidoP, String tipoDocP, GregorianCalendar fechaNacP
  58.             ,Long numDocP){
  59.         this.Nombre=NombreP;
  60.         this.Apellido=ApellidoP;
  61.         this.tipoDoc=tipoDocP;
  62.    
  63.        
  64.        
  65.         if (fechaNacP.before(this.fechaValida())){
  66.             this.fechaNac = fechaNacP;
  67.         }else{
  68.         System.out.println("usted es menor de edad");
  69.         }
  70.         this.numDoc=numDocP;
  71.        
  72.     }
  73.  
  74. }

No se donde puede estar el problema.

Y en la clase visor

Código Java:
Ver original
  1. public static void mostrarFechas(Persona persona){
  2.         String mascara = "dd/MM/yyyy";
  3.         Calendar per = persona.getFechaNac();
  4.         StringBuilder fecha=new StringBuilder("la persona nacio el:");
  5.         SimpleDateFormat sdf = new SimpleDateFormat(mascara);
  6.  
  7.         System.out.println( sdf.format(per.getTime()));
  8.    
  9.        
  10.     }

Agradeceria su ayuda

Etiquetas: clase, fecha, muestra, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:04.