我正在开发一个 Java 应用程序,但在尝试从Date对象获取年份值时遇到了一些问题。
所以基本上我有以下情况:
基本上进入我的代码我有:
Date datePrimoVersamento = sdf.parse(mappaQuote.get(1).getDatariferimentoprezzo());
Date dateMovimentoFinale = sdf.parse(mappaQuote.get(0).getDatariferimentoprezzo());
System.out.println("datePrimoVersamento: " + datePrimoVersamento + " year: " + datePrimoVersamento.getYear());
System.out.println("dateMovimentoFinale: " + " year: " + dateMovimentoFinale.getYear());
Run Code Online (Sandbox Code Playgroud)
输出是:
datePrimoVersamento: Fri Nov 27 00:00:00 CET 2015 year: 115
dateMovimentoFinale: Mon Oct 31 00:00:00 CET 2016 year: 116
Run Code Online (Sandbox Code Playgroud)
如您所见,这两个日期的年份是2015和2016,但getYear()方法返回给我115和116。
为什么?这怎么可能?我该如何解决这个问题?
来自 Javadoc:
已弃用。从 JDK version 1.1 开始,由 Calendar.get(Calendar.YEAR) - 1900 替换。返回一个值,该值是从包含此 Date 对象表示的时间或以该日期对象表示的时间开始的年份减去 1900 的结果,如解释当地时区。
所以:2016 - 1900 = 116 和 2015 - 1900 = 115。
你应该试试这个:
Calendar cal = Calendar.getInstance();
cal.setTime(datePrimoVersamento );
System.out.println("datePrimoVersamento's Year: " + cal.get(Calendar.YEAR));
cal.setTime(dateMovimentoFinale );
System.out.println("dateMovimentoFinale's Year: " + cal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |