【发布时间】:2019-08-19 02:03:59
【问题描述】:
我有这段代码我想知道为什么它返回正确的日期
Festival f= (Festival) festival.get(0);
Date d=f.getSDate();
System.out.println(d.getYear());
System.out.println(d.getMonth());
System.out.println(d.getDate());
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); // define your format.
String formattedDate = df.format(d);
System.out.println("New Date To Show::"+formattedDate);
输出是这样的
2019
2
27
New Date To Show::27/03/3919
【问题讨论】:
-
因为月份(d.getMonth())从零开始,2实际上是3
-
我cannot reproduce your problem。请发布一个可重现的问题。
-
月份是
0,基于Date类,年份是1900。您似乎创建的日期不正确。 -
如前所述:月份是基于 0 的,因此您的两个输出都是正确的。但是您使用的类已被弃用,因此您应该改用新的替代品:docs.oracle.com/javase/8/docs/api/java/util/…
-
不仅
Date类早已过时,getXx方法也已正式弃用。不要使用Date,即使你这样做了,当然避免使用过时的方法。此外,您似乎从f.getSDate()得到了错误年份的一天。我建议你使用 java.time 中的LocalDate和DateTimeFormatter,忘记Date和SimpleDateFormat。我保证,它会消除所有的困惑。
标签: java date format simpledateformat