每当时间为12:xx pm时,警报将在我的警报Android应用中设置12小时



i在Android中构建一个警报应用程序。但是每当中午12点是12时。它会在12小时后自动设置警报。就像我在10:00设置警报一样,然后将其设置为22:00。如果我在14:00设置警报,则将在第二天设置警报。仅当我的Android时钟说12.xx。

时,此错误才发生。

我从按钮文本中花时间和日期。这是代码和日志。

Date today = c.getTime();
                setAlarmTimeAndDate = Calendar.getInstance();
                setAlarmTimeAndDate.set(Calendar.DATE, Integer.parseInt(saveDateButton.getText().toString().substring(0, 2)));
                setAlarmTimeAndDate.set(Calendar.MONTH, Integer.parseInt(saveDateButton.getText().toString().substring(3, 5)) - 1);
                setAlarmTimeAndDate.set(Calendar.YEAR, Integer.parseInt(saveDateButton.getText().toString().substring(6, 10)));
                setAlarmTimeAndDate.set(Calendar.HOUR, Integer.parseInt(saveTimeButton.getText().toString().substring(0, 2)));
                setAlarmTimeAndDate.set(Calendar.MINUTE, Integer.parseInt(saveTimeButton.getText().toString().substring(3, 5)));
                Log.d("currentDateAndTime", c.getTime().toString());
                Log.d("ButtonDateAndTime|alarm", saveDateButton.getText().toString()
                        + "|" + saveTimeButton.getText().toString()
                        + "|" +setAlarmTimeAndDate.getTime().toString());

日志:

    03-12 02:31:39.814 6896-6896/com.codedweeb.notesandmemo D/currentDateAndTime: Sun Mar 12 02:31:28 GMT+05:30 2017
03-12 02:31:39.814 6896-6896/com.codedweeb.notesandmemo D/ButtonDateAndTime|alarm: 12/03/2017|03:30 AM|Sun Mar 12 03:30:39 GMT+05:30 2017
    03-12 12:33:20.366 6896-6896/com.codedweeb.notesandmemo D/currentDateAndTime: Sun Mar 12 12:33:18 GMT+05:30 2017
03-12 12:33:20.366 6896-6896/com.codedweeb.notesandmemo D/ButtonDateAndTime|alarm: 12/03/2017|03:30 AM|Sun Mar 12 15:30:20 GMT+05:30 2017

我更改了手机的时间,然后将警报迟到12小时。

您应该使用calendar.hour_of_day而不是calendar.hour。您必须在一天中的12到24小时面临此问题。日历。hour用于12小时时钟系统,而calender.hour_of_day用于24小时时钟系统。

当日历对象的新实例在12小时后进行了雪茄的新实例时,时间是在PM(12之后)时,您尝试设置calender.hour为3,所以它使其在3 pm,平均15小时。

<。

基于小时的直接计算,以确定am vs. pm并将时间返回文本字符串。这是代码:

timeString="";
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
if (hour == 0) {
   timeString =  "12AM (Midnight)";  
} else if (hour < 12) {
   timeString = hour +"AM";
} else if (hour == 12) {
  timeString = "12PM (Noon)";
} else {
  timeString = hour-12 +"PM";
}

相关内容

最新更新