2011-09-20 16 views
16

Estoy recuperando un objeto de marca de tiempo de una base de datos usando ResultSet.getTimestamp(), pero me gustaría una manera fácil de obtener la fecha en el formato de MM/DD/YYYY y la hora en un formato de HH:MM xx. Estaba retocando, parece que puedo hacer algo al hacer uso de los objetos Date y/o DateTime dentro de Java. ¿Es esa la mejor manera de hacerlo, o incluso necesito convertir la marca de tiempo para lograr esto? Cualquier recomendación sería útil.¿Cómo puedo convertir una marca de tiempo en objeto Date o DateTime?

.... 
while(resultSet.next()) { 
    Timestamp dtStart = resultSet.getTimestamp("dtStart"); 
    Timestamp dtEnd = resultSet.getTimestamp("dtEnd"); 

    // I would like to then have the date and time 
    // converted into the formats mentioned... 
    .... 
} 
.... 
+0

No 'DateTime' clase se incluye con Java 1 a través de Java 9. –

Respuesta

14

java.sql.Timestamp es una subclase de java.util.Date. Así que, solo lo cambié.

Date dtStart = resultSet.getTimestamp("dtStart"); 
Date dtEnd = resultSet.getTimestamp("dtEnd"); 

Usando SimpleDateFormat y la creación de Joda DateTime debe ser sencillo de ahora en adelante.

+11

si JodaTime va a ser utilizado 'DateTime dtStartDT = new DateTime (resultSet.getTimestamp (" dtStart "));' es todo lo que se necesita. – fvu

20
import java.sql.Timestamp; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class DateTest { 

    public static void main(String[] args) { 
     Timestamp timestamp = new Timestamp(System.currentTimeMillis()); 
     Date date = new Date(timestamp.getTime()); 

     // S is the millisecond 
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss:S"); 

     System.out.println(simpleDateFormat.format(timestamp)); 
     System.out.println(simpleDateFormat.format(date)); 
    } 
} 
+0

Tal vez "MM/dd/aaaa '' HH: mm: ss: S" es mejor? – user1768976

+0

Por supuesto, los minutos son "mm", corregí el código del ejemplo. – Christopher

0

También puede obtener objeto DateTime de marca de tiempo, incluyendo su luz del día en curso de verano:

public DateTime getDateTimeFromTimestamp(Long value) { 
    TimeZone timeZone = TimeZone.getDefault(); 
    long offset = timeZone.getOffset(value); 
    if (offset < 0) { 
     value -= offset; 
    } else { 
     value += offset; 
    } 
    return new DateTime(value); 
}  
+0

¿Qué es esta clase 'DateTime'? No hay tal clase incluida con Java. ¿Agregaste Joda-Time a tu proyecto? Si es así, no hay necesidad de mezclar las problemáticas y antiguas clases de fecha y hora heredadas como 'Calendario' con Joda-Time, solo adhiérase a Joda-Time. Además, el proyecto Joda-Time ahora está en modo de mantenimiento y aconseja la migración a las clases modernas java.time. Las clases java.time suplantan a las antiguas clases heredadas de fecha-hora ('Fecha',' Calendario', etc.) y a Joda-Time. –

+0

Porque OP preguntó cómo convertir la marca de tiempo en 'asdas' – Vettel1993

+0

DateTime pertenece a Joda-Time. OP preguntó cómo convertir la marca de tiempo en Date o DateTime. Tienes razón, no hay necesidad de clase de calendario aquí. – Vettel1993

Cuestiones relacionadas