2011-09-17 32 views
0

日付の文字列Arraylistをformat = 2011-07-18T10:39:31.855ZでJavaの日付フォーマッタを使用して並べ替えるという問題があります。しかし、それをどうやって行うのか分からない?いずれかの人に教えてくださいデータの並べ替えのためのカスタムフォーマットで日付フォーマッタを使用する方法?日付フォーマッタのヘルプで日付を並べ替える

この問題について私を助けてください。

ありがとうございます。

答えて

0

あなたはすでにStringsArrayListを持っている、とあなたは文字列がすでにISO8601でフォーマットされているすべての日付であることを示していることを、あなたの質問に言及しているので、あなたのタスクは非常に簡単です:ちょうどそのままのArrayListを並べ替えます。

つまり、one of the many benefits of ISO8601です!ウィキペディアから

:年、月(または週)、日、時、分、秒、および第二の割合:

日付と時刻の値が最下位に最もから構成されています。従って、表現の辞書編集的順序は、負の年数を含む日付表現を除いて、年代順に対応する。これにより、たとえばファイルシステムなどの日付を自然にソートすることができます。より詳細には

List<String> dateStrings = Arrays.asList(
    "2011-07-18T10:39:31.855Z", 
    "2012-09-18T10:19:31.855Z", 
    "2011-07-18T10:39:31.055Z", 
    "1903-12-01T00:39:31Z", 
); 
Arrays.sort(dateStrings); 
// now dateStrings is sorted by date. 

再びここでの考え方は、あなたが並べ替えを行うには日付に文字列を変換する必要がないことです。

あなたのリストに実際のDateオブジェクトが含まれている場合は、Arrays.sortも呼び出すことができ、日付はJavaに匹敵するためリストも正しく並べ替えられます。しかし、あなたの質問はISO8601の文字列と文字列について尋ねました。もしこれがあなたの問題の重要な部分だったら、その形式の利点を活用するかもしれません。 TL; DRでは、並べ替えるために日付形式は必要ありません。

+0

ISO8601とは何ですか、この形式でどのようにソートできますか? –

+0

私の答えにリンクと詳細な説明が追加されました。 –

0

並べ替えが意味をなさない形式ですべての日付をフォーマットします。 2桁の月など。書式文字列の例:「yyyy-MM-dd hh:mm:ss」。

次に、文字列を並べ替えるだけです(例: TreeSetを使用します。

+0

教えていただけますか? TreeSetをソートに使用する方法 –

+0

さて、TreeSetはソートされた順序でデータを保持します。したがって、文字列のTreeSetを持ち、その要素を反復処理すると、ソートされた順序で表示されます。 – Macondo2Seattle

0

この種類の並べ替えを使用できます。

ArrayList arrayList = new ArrayList(); 

//Add elements to Arraylist 
arrayList.add("1"); //1->> you can add you data format by function or static 
arrayList.add("3"); 
arrayList.add("5"); 
arrayList.add("2"); 
arrayList.add("4"); 

/* 
To sort an ArrayList object, use Collection.sort method. This is a 
static method. It sorts an ArrayList object's elements into ascending order. 
*/ 
Collections.sort(arrayList); 

//display elements of ArrayList 
    System.out.println("ArrayList elements after sorting in ascending order : "); 
for(int i=0; i<arrayList.size(); i++) 
    System.out.println(arrayList.get(i)); 

あなたもあなたに役立つリンクをたどることができます。 Link1,Link 2およびLink 3

関連する問題