Создание экземпляра GregorianCalendar из миллисекунд

у меня есть определенное время в миллисекундах (в Timestamp объект) и я хочу использовать его для создания

4 ответов


просто получите экземпляр GregorianCalendar и setTime с вашей java.язык SQL.Метка timestamp:

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

Edit: As peterh указано, GregorianCalendar.getInstance() не GregorianCalendar по умолчанию, потому что он наследуется отCalendar.getInstance(), которое может обеспечить, например,BuddhistCalendar на некоторых установок. Обязательно используйте GregorianCalender использовать new GregorianCalendar() вместо.


чтобы получить объект GregorianCalendar, а не объект календаря, такой как ответ Майкла, вы также можете попробовать следующее:

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

это предполагает временную метку эпохи UTC.


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

Я считаю, что это работает, хотя это может быть не лучший подход:

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);
    }

}