0

サポートされている形式 (yyyy-mm-dd) で sqlite データベースに日付を挿入します。ここで、クエリ時にユーザーが国に応じて日付形式を表示するようにします (イタリア dd-mm-yyyy、アメリカ yyyy-mm-dd など ...)

どうすればいいですか?ありがとう

4

3 に答える 3

5

SQLite には専用の日付と時刻のデータ型がありません。「01-01-2013」のようなものを挿入すると、そのように文字列として保存され、SQLite 日付関数を使用して変換を実行する必要があるため、比較、並べ替え、およびクエリが困難になり、遅くなります。

代わりに UNIX タイムスタンプを保存する必要があります。これには、日付列が INTEGER 型である必要があります。タイムスタンプはすばやく処理、ソート、および選択でき、Java のCalendar クラスや DateFormatクラスなどを使用して、任意の日付形式で表すことができます。ファクトリ メソッドを使用して、ユーザーのデフォルト ロケールに適した形式を取得できます。

その上に、ユーザーのロケールで日時と時間範囲の文字列を作成するためのさまざまな関数を提供するAndroid 専用のDateUtilsクラスがあります。

于 2013-10-04T15:56:33.730 に答える
1

次のコードを試してください。

String date = "2013-11-15"; // Retrived date in your specified format from sqlite
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date res = null;
    try {
        d = (Date)sdf.parse(date);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    Calendar c = Calendar.getInstance();
    c.setTime(d);

    String day = c.get(Calendar.DAY_OF_MONTH);
    String month = c.get(Calendar.MONTH);
    String year = c.get(Calendar.YEAR); 
//You can use these day, month and year string values to view in any format

これがあなたを助けることを願っています。ありがとうございました。

于 2013-11-28T09:44:57.267 に答える