2016-04-22 51 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));