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

StackOverflow https://stackoverflow.com/questions/4450238

Вопрос

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

РЕДАКТИРОВАТЬ: Как мне сделать наоборот?

Это было полезно?

Решение

Просто получите экземпляр GregorianCalendar и Settime с вашим Java.Sql.TimestAmp timestamp:

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

Редактировать:В качестве Петерх указал, GregorianCalendar.getInstance() не предоставит GregorianCalendar по умолчанию, потому что он унаследован отCalendar.getInstance(), который может обеспечить, например BuddhistCalendar На некоторых установках. Чтобы быть уверенным в том, чтобы использовать GregorianCalender использовать new GregorianCalendar() вместо.

Другие советы

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

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

Это предполагает эпохи UTC Epoch.

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

}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top