2

だから私は一見それほど賢くない質問がありますが、ここに行きます、

10:00pm to 11:00pm

上記の形式でサーバーから日時を返します。

並べ替えがしたいのですが、ORDER BY ASCうまくいかないようです。iPhoneでは動作しますが、Androidでは動作しません。

SQLiteデータベースのバージョンが原因ですか?

時間を並べ替えるにはどうすればよいですか?

4

4 に答える 4

7

表示するのは日時ではなく、時間間隔です。

この値は文字列であり、文字列は辞書式に比較されます。文字列が正しくソートされるようにするには、すべてのフィールドが常に同じ長さである必要があります(そうでない場合は、9:00にソートされます。代わりに使用してください)。さらに、/サフィックスは1日の最初の1時間は正しくソートされません。代わりに、プレーンな24時間形式を使用してください。 10:0009:00AMPM

于 2013-03-05T08:21:41.320 に答える
0

タイムスタンプを使用して日付を並べ替えることができます:Like: "yy MM dd hh:mm a" //ここではhh:mma

時間を次のような単純な日付形式に変換します。

DateFormat simpleDateFordate = new SimpleDateFormat("yy MM dd");
        Calendar calender = Calendar.getInstance();
        String date = simpleDateFordate.format(calender.getTime());
        System.out.println("date>>>>" + date);
        String time = "10:00pm";
        String stringDate = date + " " + time;

        DateFormat dateFormatdatewithTime = new SimpleDateFormat(
                "yy MM dd hh:mma");
        Date dateinMili;
        try {
            dateinMili = dateFormatdatewithTime.parse(stringDate);
            String dateFinal = dateFormatdatewithTime.format(dateinMili.getTime());
            System.out.println("Final Date time>>>>"+dateFinal);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Mili Secondsをデータベースに保存するか、dateinSimpleFormatDateをデータベースに保存するだけです。

この後、次のような単純なクエリで直接並べ替えることができます。SELECT * From Table_Name ORDER BY Column_Date ASC

于 2013-03-05T11:51:12.623 に答える
0

SQLiteが原因かもしれませんが、時間を秒単位で保存してみてください。秒で並べ替えると機能します。例1:05=65秒 編集:時間を表示したい場合は、h:m:sに戻すだけです。これが最も簡単な方法だと思います;)

于 2013-03-05T00:31:09.147 に答える
0

あなたは一つのことをすることができます、データベースに保存する前に日付をミリスに変換してください。次に、そこからソートされたリストを取得できます。次に、ソートされた結果を取得した後、それらを再び日付に変換できます。

変換には、SimpleDateFormatクラスを使用できます。サンプルコードはドキュメントにあります。または、そこにたくさんの例があります。

于 2013-03-05T05:12:03.663 に答える