2011-06-07 21 views
14

necesito para recuperar años día y mes a partir de un objeto de marca de tiempo como números largos:cómo recuperar el día de mes y el año de la marca de hora (formato largo)

public long getTimeStampDay() 
    { 

      String iDate = new SimpleDateFormat("dd/MM/yyyy") 
     .format(new Date(born_date.getDate())); 
     ..... 

       return day; //just the day 

    } 

public long getTimeStampMonth() 
    { 
    String iDate = new SimpleDateFormat("dd/MM/yyyy") 
     .format(new Date(born_date.getDate())); 
     ..... 

       return month; //just month 

    } 

public long getTimeStampYear() 
    { 
    String iDate = new SimpleDateFormat("dd/MM/yyyy") 
     .format(new Date(born_date.getDate())); 
     ..... 

       return year; //just year 
    } 

born_date es un objeto de marca de tiempo.

¿Es posible hacer eso?

Gracias de antemano.

Respuesta

36
long timestamp = bornDate.getTime(); 
Calendar cal = Calendar.getInstance(); 
cal.setTimeInMillis(timestamp); 
return cal.get(Calendar.YEAR); 

Hay campos de calendario para cada propiedad que necesita.

Alternativamente, puede utilizar joda-time:

DateTime dateTime = new DateTime(bornDate.getDate()); 
return datetime.getYear(); 
+0

Hola, en mi caso, el tipo de variable "bornDate" es "java.sql.Timestamp". Me gustaría recuperar el año de "fecha de nacimiento". "getYear()" está en desuso, pero "getDate()" está en desuso también ... Entonces, ¿qué se debe hacer? Gracias. –

+0

El tipo "bornDate" es "java.sql.Timestamp". El siguiente código hace el truco: Calendar calendar = Calendar.getInstance(); calendar.setTime (bornDate); System.out.println (calendar.get (Calendar.YEAR)); –

0

Al ver que se está utilizando un dateformat en cada método, se puede utilizar una cadena de formato diferente en cada uno. Por ejemplo:

public long getTimeStampDay() 
    { 

      String day = new SimpleDateFormat("dd") 
     .format(new Date(born_date.getDate())); 
     ..... 

       return Long.parseLong(day); //just the day 

    } 
-3

he encontrado una manera sencilla de hacerlo:

born_date.getDay(); 
born_date.getMonth(); 
born_date.getYear(); 

incluso si el método getDay getMonth y getYear están en desuso. Creo que la solución Bozho es la mejor.

+1

'born_date.getDay()' -> a partir de jdk 1.1 en desuso. lo mismo para getMonth() y getYear(). use @Bozho solución – 1ac0

+0

Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - [De la crítica] (/ review/low-quality-posts/12535761) – nullpointer

+0

@nullpointer ¿dónde está el enlace? –

-1

Este método devuelve el día, fecha, año y hora:

Timestamp timestamp = new Timestamp(System.currentTimeMillis()); 
Cuestiones relacionadas