Преобразование строки в DateTime: Android - PullRequest
4 голосов
/ 01 ноября 2011

У меня есть поле (названное как время, но тип TEXT) в моей базе данных Sqlite.В текущем формате этого столбца YYYY:MM:DD_HH:MM (как 2011: 11: 01_11: 30).Теперь мне нужно отсортировать этот столбец, поэтому я думаю, что должен сделать две вещи:

  1. Преобразовать строковое значение в дату.
  2. Затем отсортировать по столбцу.

Тогда как мне преобразовать этот столбец в DateTime?Или есть другой способ сделать это?

Ответы [ 2 ]

20 голосов
/ 01 ноября 2011

Чтобы преобразовать строку в дату, в моем случае это работает нормально,

String startTime = "2011-09-05 15:00:23";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date date1 = dateFormat.parse(startTime);

EDIT:

Для даты и времени в SQLite

1.2 Дата и время Тип данных

SQLite не имеет класса хранения, выделенного для хранения дат и / или времени. Вместо этого встроенные функции даты и времени SQLite способны хранить даты и время в виде значений TEXT, REAL или INTEGER:

* TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
* REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
* INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC. 

Приложения могут сохранять даты и время в любом из этих форматов и свободно конвертировать между форматами, используя встроенные функции даты и времени.

Итак, просто используйте в качестве INTEGER или TEXT и используйте для сортировки предложение ORDER BY.

0 голосов
/ 01 ноября 2011

Рекомендуется использовать длинный тип данных для значения даты и времени, несмотря на текст.

Затем вы можете использовать его в коде ur, просто вызвав конструктор класса Date для получения даты и времени.

Это упрощает процесс сортировки.

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