从日历中减去 MONTH 无法正常工作

Substracting MINUTE from Calender not working correctly

我必须使用 AlarmManager 设置闹钟,然后我需要从给定时间减去 10 分钟。但是输出是错误的。它显示输出的差异超过 10 分钟。 我当前的代码如下所示

 AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

        Log.e("here value of time",time);
        Calendar calendar1 = Calendar.getInstance();
        calendar1.setTimeZone(TimeZone.getDefault());
        SimpleDateFormat dateFormatter = new SimpleDateFormat("MM-dd-yyyy h:mm a");
        try {
            calendar1.setTime(dateFormatter.parse(time));
            calendar1.set(calendar1.MINUTE,-10);


            Log.e("alarm Set for", String.valueOf(calendar1.getTime()));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        manager.set(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), pendingIntent); 

我得到这样的日志

here value of time: 11-19-2019 1:30 a.m.

alarm Set for: Tue Nov 19 00:50:00 GMT+05:30 2019

您不是将 -10 添加到当前分钟,而是将分钟设置为 -10 的值,这会使时间倒退!变化

calendar1.set(calendar1.MINUTE,-10);

calendar1.set(Calendar.MINUTE, calendar1.get(Calendar.MINUTE) - 10);

更改此行:

calendar1.set(calendar1.MINUTE,-10);

calendar1.add(Calendar.MINUTE, -10);