これらの日付の形式のため、日付の並べ替えに問題があります。
私は日付を取得します:
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
そして、これらの値で文字列を作成します。
dateRappDB = (new StringBuilder()
.append(mYear).append(".")
.append(mMonth + 1).append(".")
.append(mDay).append(" ")).toString();
問題は、月がたとえば2月の場合、mmonthの値が2であることです。そのため、10月(10)のような月の日付は、私のリストの前にあります。
私が必要なのは、月と日がMMとddのようにフォーマットされていることです。しかし、私の場合はどうすればいいのかわかりません。
[〜#〜]編集[〜#〜]:
上記のようにDateFormatを使用して問題を解決しました。
私はこれを交換しました:
dateRappDB = (new StringBuilder()
.append(mYear).append(".")
.append(mMonth + 1).append(".")
.append(mDay).append(" ")).toString();
これで :
Date date = new Date(mYear - 1900, mMonth, mDay);
dateFacDB = DateFormat.format("yyyy.MM.dd", date).toString();
そしてそれは機能します。ご協力いただきありがとうございます:)
ここに日付を文字列に変換する簡単な方法があります:
SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy");
String strDt = simpleDate.format(dt);
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
String timestamp = simpleDateFormat.format(now);
これらは重宝するかもしれません
SimpleDateFormat simpleDateFormat =
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ");
この形式は-> "2016-01-01T09:30:00.000000 + 01:00"と同じです。
SimpleDateFormat simpleDateFormat =
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ");
この形式は-> "2016-06-01T09:30:00 + 01:00"と同じです。
文字列ではなく日付をソートする必要があります。また、 DateFormat について聞いたことはありますか?それはあなたのために追加するものすべてを作ります。
これは日付形式の例です
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date();
System.out.println("format 1 " + sdf.format(date));
sdf.applyPattern("E MMM dd yyyy");
System.out.println("format 2 " + sdf.format(date));
私があなたの問題を理解している場合、日付のリストを作成します。日付のリストは文字列であるため、番号順で辞書順に配置されます。
私があなただったら、挿入ポイント(配列リストなど)を制御したり、並べ替えアルゴリズムを制御したりできるコンテナーに結果を保存します。