Date()在12月29日(29/12)显示下一年

时间:2019-12-28 15:17:00

标签: android date

我正在使用new Date()函数来获取当前日期。但是,在2019年12月29日(29/12/2019),该功能开始显示2020年12月29日(29/12/2020),错误地将年份提前了3天。

然后在1月1日(2020年1月1日)恢复到正确的年份,并正确显示正确的日期,月份和年份。

我完全不知道是什么原因引起的,或者为什么会发生这种情况。

任何人以前都经历过这种情况,并且知道为什么吗?还是知道如何解决?

下面列出了我的代码。这是一个非常简单的事件流,但是如上所述,一旦日期到达12月29日,TextView中的年份就会突然更改为2020年而不是2019年。这种情况也发生在以后的年份(2020年至2021年等)中。 )

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/YYYY");

String currentDate = sdf.format(new Date());

startDateTextView.setText(currentDate);

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

注意:对于所有日期时间处理代码,请使用现代的java.time类,而不要使用CalendarDate


遇到问题

在这种情况下,您需要在日期格式化程序中使用dd/MM/yyyy而不是dd/MM/YYYY。阅读Y returns 2012 while y returns 2011 in SimpleDateFormat了解更多详情。

答案 1 :(得分:0)

日期c = Calendar.getInstance()。getTime(); System.out.println(“当前时间=>” + c);

SimpleDateFormat df = new SimpleDateFormat(“ dd / MM / yyyy”); 字符串formattedDate = df.format(c); 请使用它来获取当前日期