0

私はデータベースに日付を保存しました。最初に現在の日付を取得し、次にそれを文字列に変換してからデータベースに保存します。正常に動作しています。

次に、データを取得してListViewに表示します。そのために、次のようにしました。

// get the string value of date

    String dateString = c.getString(c.getColumnIndex(CallHistoryDataBase.colDate));

// format according to system's current format

    java.text.DateFormat dateFormat =  android.text.format.DateFormat.getDateFormat(getApplicationContext());
    textViewDateTime.setText(dateFormat.format(new Date(dateString)));

日付を「dd/MM / yyyy」形式で保存し、後でシステムの形式を「yyyy / MM /dd」形式 で表示されるリストの「yyyy/MM / dd」に変更した場合のように、正常に機能しています。

ただし、2012/04/14の日付の2014/04/14が表示される場合あります。データベースとの間でデータを保存および取得するときに、問題がないことを確認しました。

手がかりがつかない。ハードコードはなく、14の数字もありません。

任意の提案...別の解決策も受け入れられます。

4

1 に答える 1

0
public String getDate(final Context context, final long time) {
        long t = time;
        if (t < MIN_DATE) {
            t *= MILLIS;
        }
        final Calendar base = Calendar.getInstance();
        base.set(Calendar.HOUR_OF_DAY, 0);
        base.set(Calendar.MINUTE, 0);
        base.set(Calendar.SECOND, 0);
        if (t < base.getTimeInMillis()) {
            SimpleDateFormat df1 = new SimpleDateFormat("dd-MMM-yyyy");
            String formattedDate1 = df1.format(t);

            return formattedDate1;
            // return DateFormat.getDateFormat(context).format(t);
        } else {
            return DateFormat.getTimeFormat(context).format(t);
        }
    }

このメソッドを使用すると、dd-mm-yyyy形式で日付を取得し、データベースにミリ秒単位でデータを渡すことができます。お役に立てば幸いです。

于 2012-05-28T12:43:09.163 に答える