web-dev-qa-db-ja.com

Android:文字列の日付形式

これらの日付の形式のため、日付の並べ替えに問題があります。

私は日付を取得します:

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();

そしてそれは機能します。ご協力いただきありがとうございます:)

19
HerrM

ここに日付を文字列に変換する簡単な方法があります:

SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy");

String strDt = simpleDate.format(dt);

24
Vinayak
 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"と同じです。

13
THZ

文字列ではなく日付をソートする必要があります。また、 DateFormat について聞いたことはありますか?それはあなたのために追加するものすべてを作ります。

4
ernazm

これは日付形式の例です

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));
2
Pratik

私があなたの問題を理解している場合、日付のリストを作成します。日付のリストは文字列であるため、番号順で辞書順に配置されます。

私があなただったら、挿入ポイント(配列リストなど)を制御したり、並べ替えアルゴリズムを制御したりできるコンテナーに結果を保存します。

0
Kheldar