Помогите с датами в Android - PullRequest
0 голосов
/ 04 января 2011

Нужна помощь в получении данных из виджета DatePicker и их сохранении в базе данных sqlite в приложении. У меня есть следующий код:

java.util.Date utilDate = null;
            String y = Integer.toString(date.getDayOfMonth()) + "/" + (date.getMonth()+1) + "/" + Integer.toString(date.getYear());
            SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyy");
            utilDate = formatter.parse(y);
            java.sql.Date z = new java.sql.Date(utilDate.getDate());
            x = z.toString();
            Log.v("The date: ", x);
}

Где date - это виджет DatePicker. Если я выведу переменную utilDate (то есть версию даты на Java) с помощью logCat, она, кажется, будет работать нормально и даст мне такой формат: вторник, январь 00:00:00 по Гринвичу 2011 года, который я ожидаю, но использую приведенный выше код для версия даты sql, она всегда дает мне дату 1970-01-01. Я уверен, что решение очень простое, но я просто не вижу его.

1 Ответ

2 голосов
/ 04 января 2011

Эта часть: utilDate.getDate() неверна.

Цитата из Javadoc :

Возвращает день месяца, представленного этим объектом Date. Возвращаемое значение составляет от 1 до 31, представляющее день месяца, который содержит или начинается с момента времени, представленного этим объектом Date, как интерпретируется в местном часовом поясе.

Итак, вы получаете число от 1 до 31, и вы ожидаете, что long представляет число миллисекунд, прошедших с 1 января 1970 г. 00: 00: 00.000 GMT.

Использование

java.sql.Date z = new java.sql.Date(utilDate.getTime());

и все должно быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...