Как преобразовать из 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
Спасибо.
Ответы
Ответ 1
Методы getTimeInMillis()
и setTimeInMillis(long)
позволят вам получить и установить время в миллисекундах, это время unix, умноженное на 1000. Вам придется настраивать вручную, так как время unix не включает миллисекунды - только секунды.
long unixTime = gregCal.getTimeInMillis() / 1000;
gregCal.setTimeInMillis(unixTime * 1000);
Кроме того: если вы часто используете даты в своем приложении, особенно если вы конвертируете даты или используете несколько часовых поясов, я настоятельно рекомендую использовать JodaTime библиотека. Это очень полно и довольно естественно понять, чем система Calendar, которая поставляется с Java.
Ответ 2
Я считаю, что GregorianCalendar.getTimeInMillis() и GregorianCalendar.SetTimeInMillis( ) позволит вам получить и установить длинные значения так, как вы хотите.
Ответ 3
Проверьте функции setTimeInMillis и getTimeInMillis: http://download.oracle.com/javase/6/docs/api/java/util/Calendar.html#getTimeInMillis()
Ответ 4
Calendar.getTimeInMillis() должен быть тем, что вы ищете.