【问题标题】:how to sort date which stored in database with string如何使用字符串对存储在数据库中的日期进行排序
【发布时间】:2013-11-22 07:35:17
【问题描述】:

我正在尝试排序

SELECT * FROM myTable ORDER BY DATE(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;
    }

我想用最新日期排序 任何人都可以为我花一些时间.. 提前致谢。

【问题讨论】:

  • 您应该以毫秒为单位将日期更新到数据库中(长值)。
  • 你能详细说明如何做到这一点吗????
  • 你得到什么字符串日期?
  • 2013 年 11 月 17 日星期日 04:06:01 +0000 这是字符串

标签: android sorting android-sqlite android-date android-query


【解决方案1】:

您可以将字符串日期转换为 Long 然后将其放入数据库: 如果您有类似 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 取决于您的日期字符串格式。

【讨论】:

  • 首先将 String 日期转换为 Long 并放入 DB。现在可以使用简单查询 Select * from table name order by datecolumn name desc Limit maxrows or stackoverflow.com/questions/8051800/…
  • 是的,您要显示的格式将其转换回字符串
  • 请给我承认 :P :)
  • 您好先生,请看这个问题UPDATE 部分返回我总是0。
【解决方案2】:

我这样做是为了解决我的问题..

谢谢大家...

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 2016-04-04
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多