2016-10-13 14 views
0

私はJavaアプリケーションを開発中です。 LocalDatesのListをString配列に変換しています。私は文字列配列を印刷するとき、私はフォーマットされた日付を取得する必要があります。org.joda.time.LocalDateの書式設定

現在の日付形式は2016-10-12,2016-10-13です。10月12,2016形式の10月13,2016 ... さまざまな方法を試しましたが、フォーマットに近いエラーが表示されています方法。日付を10月12,2016にフォーマットし、String配列に格納する方法をアドバイスしてください。以下 は私のコードです:

// import org.joda.time.LocalDate; 
    List<LocalDate> localDatesList = new ArrayList<LocalDate>(); 
    localDatesList.add(new LocalDate()); 
    localDatesList.add(new LocalDate().plusDays(1)); 
    localDatesList.add(new LocalDate().plusDays(2)); 
    localDatesList.add(new LocalDate().plusMonths(1)); 
    localDatesList.add(new LocalDate().plusMonths(2)); 
    List<String> tempDatesList = new ArrayList(localDatesList.size()); 
    for (LocalDate date : localDatesList) { 
       tempDatesList.add(date.toString()); 
     } 
    String[] formattedDates = tempDatesList.toArray(new String[localDatesList.size()]); 
for(String dates : formattedDates){ 
    System.out.println(dates); 
          } 
       } } 

出力リレー:

2016年10月12日

2016年10月13日

2016年10月14日

2016-11- 12

2016-12-12

私は私がしてDateTimeFormatterを使用してみました

.. 2016-10-12,2016-10-13から10月12,2016、10月13,2016に日付をフォーマットしたいのですが、私は以下のコードを使用していたときにそのthrowingエラーは、parseLocalDateメソッドを認識できませんでした。

私は以下のコードを試しましたが、parseLocalDate(..)メソッドを認識できませんでした。あなたのコードで

final DateTimeFormatter formatter = DateTimeFormat.forPattern("MMMM dd,YYYY"); 

final LocalDate local = formatter.parseLocalDate(date.toString()); 

答えて

1

あなたは試してみてください:

for (LocalDate date : localDatesList) { 
     final DateTimeFormatter formatter = DateTimeFormat.forPattern("MMMM dd,YYYY");   
     String str = formatter.print(date); 
     System.out.println(str); 
     tempDatesList.add(str); 
    } 

この版画:

October 13,2016 
October 14,2016 
October 15,2016 
November 13,2016 
December 13,2016 

輸入:

import org.joda.time.LocalDate; 
import org.joda.time.format.DateTimeFormat; 
import org.joda.time.format.DateTimeFormatter; 
1

はこれを試してみてください、少しあなたのコード、フォーマットをリファクタリングし、解析が追加されました

String format = "MMMM dd,YYYY"; 
    final DateTimeFormatter formatter = DateTimeFormat.forPattern(format); 

    List<String> dateStrings = new ArrayList<>(localDatesList.size()); 
    for (LocalDate date : localDatesList) { 
     dateStrings.add(date.toString(format)); //format 
    } 

    System.out.println("Strings " + dateStrings); 

    List<LocalDate> localDates = new ArrayList<>(); 
    for (String dateString : dateStrings) { 
     localDates.add(formatter.parseLocalDate(dateString)); //parse 
    } 

    System.out.println("LocalDates " + localDates); 

出力

Strings [October 13,2016, October 14,2016, October 15,2016, November 13,2016, December 13,2016] 
LocalDates [2016-10-13, 2016-10-14, 2016-10-15, 2016-11-13, 2016-12-13]