2017-05-15 4 views
-2

日付は文字列形式:2017-05-10です。 2011年10月5日にこの文字列を変換する必要があります。私はどうすればいいですか? どのライブラリを使用できますか? 私はあなたが次のコード試すことができ、これを試みたが、Javaで日付をフォーマットする

DateFormat df = new SimpleDateFormat("dd-MM-yyyy",Locale.ITALIAN); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(df.parse(data)); 
+0

あなたのパーサーが間違ったパターン –

+1

を使用しているので、それは動作しませんが、[java.timeのAPI]を見てくださいを(https://でdocs.oracle.com/javase/8/docs/api/java/time/package-summary.html) –

+0

「動作しません」ということでできることはあまりありません。それがうまくいかないかを正確に教えていただければ、私たちの方がはるかに簡単になります。あなたは間違った結果を得ましたか?もしそうなら、間違った結果が出ましたか?エラーメッセージ?スタックトレースの例外?それらをあなたの質問に貼り付けてください。 –

答えて

1

に動作していない:以下で説明する、私は単純にStringオブジェクトで構築されています内部のJava機能を実行します

DateFormat dfto = new SimpleDateFormat("dd/MM/yyyy"); 
DateFormat dffrom = new SimpleDateFormat("yyyy-MM-dd"); 
Date today = dffrom.parse("2017-05-10"); 
String s = dfto.format(today); 
+0

èfantastico !!! – Michael

0

を:

replace(char oldChar, char newChar) 
Returns a new string resulting from replacing all occurrences of 
oldChar in this string with newChar. 

String myDate = df.parseDate(data).toString(); 
// if that's the right string you mention 
// then 
cal.setTime(myDate.replace('-', '/')); 

エスケープする必要があるかもしれませんが、charデータ型であるため、私の最初の考えはノーです。

2

もjava.timeのAPI使用して行うことができます。

String date = "2017-05-10"; 
LocalDate ld = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd")); 
String formattedDate = DateTimeFormatter.ofPattern("dd/MM/yyyy").format(ld); 
+0

これはJava 8以降を使用するすべての人にとって推奨される方法です。 'DateFormat'、' SimpleDateFormat'、 'Calendar'は長年にわたって時代遅れです。 –

関連する問題