有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓在使用java对象时,一周中的哪一天出错了。util。日期

我正试图从日期选择器中检索一个日期,并创建一个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

共 (3) 个答案

  1. # 1 楼答案

    在我看来,一个点从“0”开始计数,另一个点从“1”开始计数

    可能先尝试将字符串传递到控制台进行调试

  2. # 2 楼答案

    您应该检查monthOfYear的值(打印或调试)-当您似乎期望它是7时,输出显示它的值是6(可能是因为您没有考虑datePicker.getMonth()返回0到11之间的值这一事实)

    因为你没有展示你是如何获得价值的,所以很难说得更多

  3. # 3 楼答案

    试试这个:

    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中。日期[1]+=1是必需的,因为它的指数从0到11,所以要获得准确的月份。据我所知,其他人都很好