Создание экземпляра GregorianCalendar из миллисекундов
-
10-10-2019 - |
Вопрос
У меня определенное время в миллисекундах (в 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);
}
}