Pregunta

Tengo un cierto tiempo en milisegundos (en un objeto Timestamp) y quiero utilizarlo para crear un objeto GregorianCalendar. ¿Cómo puedo hacer eso?

Editar :? ¿Cómo lo hago al revés

¿Fue útil?

Solución

Apenas consiga una instancia de GregorianCalendar y setTime con su timestamp java.sql.Timestamp:

Calendar cal=GregorianCalendar.getInstance();
cal.setTime(timestamp);

Editar Como Peterh señaló, GregorianCalendar.getInstance() no proporcionará una GregorianCalendar por defecto, ya que se hereda fromCalendar.getInstance(), que puede proporcionar por ejemplo una BuddhistCalendar en algunas instalaciones. Para estar seguro de utilizar un GregorianCalender uso new GregorianCalendar() lugar.

Otros consejos

Para obtener un objeto GregorianCalendar y no un objeto Calendar. Al igual que la respuesta de Michael proporciona, también puede hacer lo siguiente:

long timestamp = 1234567890;
GregorianCalendar cal = new GregorianCalendar();
cal.setTimeInMillis(timestamp);

Esto supone un sello de tiempo UTC época.

Timestamp timestamp = new Timestamp(23423434);
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTimeInMillis(timestamp.getTime());

Creo que esto funciona, aunque puede no ser el mejor enfoque:

import java.sql.Date;
import java.sql.Timestamp;
import java.util.GregorianCalendar;

public class TimestampToGregorianCalendar {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Timestamp t = new Timestamp(12356342); // replace with existing timestamp
        Date d = new Date(t.getTime());
        Calendar gregorianCalendar = GregorianCalendar.getInstance();
        gregorianCalendar.setTime(d);
    }

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top