Я пишу приложение для ОС Android, и мне нужно сохранить некоторые значения времени в БД SQLite. Я использую android.text.format.Time для хранения значений времени в приложении, а затем вставляю значения в виде миллис в БД в качестве РЕАЛЬНЫХ значений. На эмуляторе SDK все работает отлично. На единственном телефоне у меня была возможность протестировать мое приложение (пока), мой код продолжительности не работает должным образом. Некоторый соответствующий код:
private static final String DATABASE_CREATE =
"create table " + DATABASE_TABLE + " ("
+ KEY_ROWID + " integer primary key autoincrement, "
+ KEY_START + " REAL, "
+ KEY_STOP + " REAL, "
+ KEY_DUR + " REAL );";
...
private SQLiteDatabase mDb;
ContentValues timerValues = new ContentValues();
...
timerValues.put(KEY_START, stime.toMillis(false));
timerValues.put(KEY_STOP, etime.toMillis(false));
timerValues.put(KEY_DURATION, stime.toMillis(false)-etime.toMillis(false));
int result = mDb.insert(DATABASE_TABLE, null, timerValues);
Я извлекаю эти данные из двух отдельных функций со слегка отличающимися битами кода, оба из которых используют Time.set (длинный миллис), и оба дают неверные результаты: значения начала и остановки возвращаются правильно, но длительность также составляет 17 часов большой. Я что-то упускаю из расчета длительности или кажется, что в этом конкретном дроиде есть что-то особенное? У меня будет еще один дроид для тестирования в понедельник, но любые идеи приветствуются.