2016-04-22 50 views
-3

我試圖格式化所需的喬達時間LocalDate類型爲mmddyyy格式,我遇到了麻煩,不知道如何繼續。到目前爲止,我嘗試了幾個不同的事情,但沒有運氣。格式喬達時間LocalDate MMDdyyyy

所以我非常想要像04-15-2016這樣的日期,並以格式04152016從它獲取LocalDate類型,但它仍然需要LocalDate格式,而不是字符串。

DateTimeFormatter dtf = DateTimeFormat.forPattern("MMddyyyy"); 
LocalDate currentDate = LocalDate.parse("04152016", dtf); 
System.out.println(currentDate); 

日期爲2016-04-15。如果有人能幫助我,我將不勝感激。當談到喬達時間庫時,我可能錯過了一些基本的東西。

謝謝你。

+3

我不明白。你爲什麼不使用'DateTimeFormatter'格式化'currentDate'? – Savior

+5

您需要明白'LocalDate'沒有格式 - 這不是其狀態的一部分。當你想以特定的形式將其轉換爲文本時,可以使用'DateTimeFormatter'。 –

回答

0

long,double,DateLocalDate這樣的數據類型是值,並且不存儲您希望顯示它們的首選格式。

當你想顯示他們一種特殊的方式,你需要使用格式化把它們變成一個字符串,然後將字符串中有一個格式,但(比它的默認格式,內置的除外)的價值從來不會

+0

如果你還展示瞭如何做到這一點,你會得到我的+1。 – Andreas

+0

@Andreas特別展示了哪些? –

+0

顯示如何以所需的格式打印LocalDate,例如'System.out.println(dtf.print(currentDate));' – Andreas

1

您的currentDate代表了一段時間。例如,您可以以法國人會理解的方式或印度人的方式打印該時刻。請從開始。特別是,看到該條目

String b = dt.toString("dd:MM:yy"); 

你可以通過打印

currentTime.toString("MMddyyyy"); 

適應它或者你可以重用你的格式,並採用Jon Skeet's answer(在評論中引用)。

System.out.println(dtf.print(currentDate));