Подтвердить что ты не робот

Как преобразовать из Gregorian Calendar в Unix Time в Java?

Мне нужен метод преобразования объекта GregorianCalendar в Unix Time (т.е. длинный). Также нужен метод для преобразования Unix Time (long) обратно в объект GregorianCalendar. Существуют ли какие-либо методы, которые делают это? Если нет, то как я могу это сделать? Любая помощь будет высоко оценена.

Ссылка на класс GregorianCalendar → http://download.oracle.com/javase/1.4.2/docs/api/java/util/GregorianCalendar.html

Спасибо.

4b9b3361

Ответ 1

Методы getTimeInMillis() и setTimeInMillis(long) позволят вам получить и установить время в миллисекундах, это время unix, умноженное на 1000. Вам придется настраивать вручную, так как время unix не включает миллисекунды - только секунды.

long unixTime = gregCal.getTimeInMillis() / 1000;
gregCal.setTimeInMillis(unixTime * 1000);

Кроме того: если вы часто используете даты в своем приложении, особенно если вы конвертируете даты или используете несколько часовых поясов, я настоятельно рекомендую использовать JodaTime библиотека. Это очень полно и довольно естественно понять, чем система Calendar, которая поставляется с Java.

Ответ 4

Calendar.getTimeInMillis() должен быть тем, что вы ищете.