Как отсортировать дату, которая хранится в базе данных со строкой
Я пытаюсь сортировать
SELECT * FROM myTable ORDER BY DATE(дата) //
date
хранится со строкой
Вот LogCat
11-22 12:50:50.906: I/DB(31388): get :17 Nov 2013 09:36:01
11-22 12:50:50.906: I/DB(31388): get :13 Nov 2013 07:41:29
11-22 12:50:50.907: I/DB(31388): get :12 Nov 2013 11:09:46
11-22 12:50:50.907: I/DB(31388): get :08 Nov 2013 09:13:26
11-22 12:50:50.908: I/DB(31388): get :02 Nov 2013 08:54:26
11-22 12:50:50.908: I/DB(31388): get :27 Oct 2013 08:02:09
11-22 12:50:50.908: I/DB(31388): get :26 Oct 2013 07:42:18
11-22 12:50:50.908: I/DB(31388): get :21 Oct 2013 06:45:18
11-22 12:50:50.909: I/DB(31388): get :19 Oct 2013 07:38:43
11-22 12:50:50.909: I/DB(31388): get :16 Oct 2013 03:12:16
ОБНОВЛЕНИЕ ЗДЕСЬ ============>>>
Это не возврат long
значение. Это всегда return 0
,
try {
DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
Date date = sdf.parse(dateTime);
long milliseconds = date.getTime();
return milliseconds;
} catch (Exception e) {
e.printStackTrace();
Log.i("DB", "err :" + e);
return 0;
}
Хочу разобраться с последней датой, может кто-нибудь потратил на меня время.. Заранее спасибо.
2 ответа
Решение
Вы можете преобразовать строковую дату в Long, затем поместить ее в базу данных: если у вас есть Date String что-то вроде этого 22/11/2013 12:10:00, вы можете просто конвертировать ее с помощью SimpleDateFormater
public static long convertStringDateToLong(String dateTime){
try {
DateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date d = f.parse(dateTime);
long milliseconds = d.getTime();
return milliseconds;
} catch (Exception e) {
return 0;
}
}
SimpleDateFormate Зависит от вас формат строки даты.
Я сделал это для этой моей проблемы..
Спасибо всем...
public static String convertLongToStringDate(String dateTime) {
String dateString=null;
Long l=Long.parseLong(dateTime);
try {
Date date=new Date(l);
DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss");
dateString = sdf.format(date);
} catch (Exception e) {
return dateString;
}
return dateString;
}