2015-03-10 1 views
3

Я понимаю, что Joda Instant похожа на отметку времени Unix, так как она хранит количество миллисекунд с 1.1.1970. Поэтому я хочу вставить это в свою базу данных Android SQLite как INTEGER. Но в моем приложении я работаю с Joda LocalDate, поэтому мне нужно преобразовать LocalDate в Instants и наоборот.Как конвертировать Joda мгновенно в LocalDate и наоборот?

Может ли кто-нибудь сказать мне, как?

ответ

4

Для того, чтобы конвертировать LocalDate в номер Instant, вам необходимо указать время суток и часовой пояс. Класс LocalDate предлагает метод toDateTime(), так что вы можете использовать этот пример и настроить его под свои нужды:

LocalDate date = new LocalDate(); 
LocalTime time = LocalTime.MIDNIGHT; 
DateTimeZone zone = DateTimeZone.getDefault(); 
Instant instant = date.toDateTime(time, zone).toInstant(); 

в обратном направлении также needs a timezone.

Instant instant = Instant.now(); 
DateTimeZone zone = DateTimeZone.getDefault(); 
LocalDate date = instant.toDateTime(zone).toLocalDate(); 

Хотя можно оставить из аргументов зоны в Joda-времени (что означает часовой пояс системы) Я рекомендую указать его явно, чтобы сделать часовой пояс зависимость понятнее. Тот же момент/момент может быть связан с разными датами по всему миру (из-за изменений в полночь в некоторых местах или из-за пересечения международной линии дат).

 Смежные вопросы

  • Нет связанных вопросов^_^