我试图从datePicker中检索日期并创建一个java.util.Date对象,我不明白为什么我在 selectedDate 变量。 currentDate 变量是正确的。
String dateStr = String.valueOf(dayOfMonth) + "/" + String.valueOf(monthOfYear) + "/" + String.valueOf(year);
String timeStr = String.valueOf(hourOfDay) + ":" + String.valueOf(minute);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date selectedDate = simpleDateFormat.parse(dateStr + " " + timeStr);
Date currentDate = Calendar.getInstance().getTime();
System.out.println("selectedDate = " + String.valueOf(selectedDate));
System.out.println("currentDate = " + String.valueOf(currentDate));
输出:
selectedDate = Mon Jun 13 12:44:00 WEST 2016
currentDate = Wed Jul 13 12:44:04 WEST 2016
答案 0 :(得分:2)
你应该检查(打印或调试)monthOfYear
的值 - 当你看起来它是7时,输出显示它的值是6(可能是因为你没有考虑到这个事实datePicker.getMonth()
返回0到11之间的值。
由于您没有表明您是如何获得价值的,因此很难说出来。
答案 1 :(得分:0)
试试这个:
Calendar c = Calendar.getInstance();
int[] date = {
c.get(Calendar.DATE), c.get(Calendar.MONTH),
c.get(Calendar.YEAR), c.get(Calendar.DAY_OF_WEEK)
};
date[1]+=1;
此设置使用Calendar类,该类已集成到Android中。 date [1] + = 1是必需的,以获得准确的月份,因为它的索引从0到11。据我所知,所有其他人都很好。
答案 2 :(得分:0)
它实际上是在寻找我,有一点你开始从'0'开始计数,另一方面从'1'开始计算。
可能会尝试将字符串传递给控制台进行调试。