java date.getyear_为什么Java的Date.getYear()返回111而不是2011?
tl;博士
int year =
LocalDate.parse(
"04/12/2011" ,
DateTimeFormatter.ofLocalizedDate( FormatStyle.SHORT ).withLocale( Locale.US )
).getYear() ;
2011
java.time
麻煩的Interval類及其兄弟類現(xiàn)在已由出色的java.time類取代。
String input = "04/12/2011";
Locale locale = Locale.US;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate( FormatStyle.SHORT ).withLocale( locale );
LocalDate ld = LocalDate.parse( input , f );
java.time類利用合理的編號,其中包括:
1月-12月的1-12個(gè)月
2011代表2011
周一至周的星期幾為1-7(根據(jù)ISO 8601)。
詢問Interval的組成部分。
int year = ld.getYear(); // 2011
int month = ld.getMonthValue(); // 4
int dayOfMonth = ld.getDayOfMonth(); // 12
您甚至可以要求自動(dòng)本地化的月份名稱和星期幾的名稱。
String monthName = ld.getMonth().getDisplayName( TextStyle.FULL_STANDALONE , Locale.CANDA_FRENCH ); // avril
關(guān)于java.time
java.time框架內(nèi)置于Java 8及更高版本中。 這些類別取代了麻煩的舊日期時(shí)間類別,例如Interval、YearWeek和YearQuarter。
現(xiàn)在處于維護(hù)模式的Joda-Time項(xiàng)目建議遷移到j(luò)ava.time。
要了解更多信息,請參見Oracle教程。 并在Stack Overflow中搜索許多示例和說明。
許多java.time功能都在ThreeTen-Backport中反向移植到Java 6和7,并在ThreeTenABP中進(jìn)一步適應(yīng)了Android(請參閱如何使用…)。
ThreeTen-Extra項(xiàng)目使用其他類擴(kuò)展了java.time。 該項(xiàng)目為將來可能在java.time中添加內(nèi)容提供了一個(gè)試驗(yàn)場。 您可能會(huì)在這里找到一些有用的類,例如Interval、YearWeek、YearQuarter等。
總結(jié)
以上是生活随笔為你收集整理的java date.getyear_为什么Java的Date.getYear()返回111而不是2011?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java二重循环换行_Java零基础系列
- 下一篇: java中垃圾收集_Java中的垃圾收集