2015-07-09 2 views
0

Привет, я пишу приложение andorid, используя Realm. Я загружаю некоторые данные JSON, содержащие список проекта с нашего сервера и сохранить результат в Realm, но я был сталкиваясь ошибка сRealm java Дата/временная метка находится за пределами допустимого диапазона

java.lang.IllegalArgumentException: Date/timestamp is outside valid range 
     at io.realm.internal.UncheckedRow.setDate(UncheckedRow.java:201) 
     at io.realm.ProjectRealmProxy.setExpiry(ProjectRealmProxy.java:92) 
     at io.realm.ProjectRealmProxy.copy(ProjectRealmProxy.java:238) 
     at io.realm.ProjectRealmProxy.copyOrUpdate(ProjectRealmProxy.java:229) 
     at io.realm.DefaultRealmModuleMediator.copyOrUpdate(DefaultRealmModuleMediator.java:123) 
     at io.realm.Realm.copyOrUpdate(Realm.java:1565) 
     at io.realm.Realm.copyToRealm(Realm.java:1116) 

Проблема возникает, когда я пытаюсь сохранить проект с истечением срока действия 2040-11-30. У кого-нибудь есть идеи, почему?

+0

Как вы создали свою дату от JSON? Если вы используете 'date.setYear (2040)', вы получите некоторую дату, которая выходит за пределы диапазона. Если вы действительно хотите использовать устаревший 'setYear', попробуйте' date.setYear (2040-1900) '. – beeender

+0

Я получаю строку даты, которую я конвертирую в Date с помощью SimpleDateFormatter, но как только я вызываю .setDate (date) в объекте realm, возникает ошибка –

+0

Не могли бы вы проверить, прежде чем вы вызываете '.setDate (date)' , какова годовая стоимость даты? – beeender

ответ

2

Существует ограничение Дата в Realm-Java прямо сейчас, см https://realm.io/docs/java/latest/#general

Даты обрезаются с точностью до одной секунды. Чтобы поддерживать совместимость между 32-битными и 64-битными устройствами, невозможно сохранить даты до 1900-12-13 и после 2038-01-19.

И есть opened issue, отслеживающий это на github.

+1

Если вам нужна более высокая точность или более широкий диапазон, лучшим решением является сохранение вашей даты/метки времени как 'long' вместо' Date'. – geisshirt

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