Google日历中的通知时间

时间:2013-10-31 06:28:49

标签: android google-calendar-api

我在下午2:25在Android Google日历中创建了一个闹钟。然后我尝试捕获事件警报意图,但是当我格式化警报时间时它会显示不同的时间。

这是我的日志

  10-31 14:25:18.475: D/@@@@@ Notify(25637): event name: New event
  10-31 14:25:18.475: D/@@@@@ Notify(25637): alarm time formatted: 2013-10-31 02:11
  10-31 14:25:18.475: D/@@@@@ Notify(25637): alarm time not formatted: 2013-9-31 2:11
  10-31 14:25:18.475: D/@@@@@ Notify(25637): today: 2013-9-31 14:25
  10-31 14:25:18.475: D/@@@@@ Notify(25637): today formatted: 2013-10-31 02:25
  10-31 14:25:18.480: I/CalendarTest(25637): CalendarTest.onReceive called!

我用它来格式化我的时间

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");

你知道为什么会出现差异吗?

编辑:未格式化的时间

 Date dtAlarmTime = new Date(alarmTime);
 Calendar alarm_cal = Calendar.getInstance();
 alarm_cal.setTime(dtAlarmTime);

 int alarm_year = alarm_cal.get(Calendar.YEAR);
 int alarm_month = alarm_cal.get(Calendar.MONTH);
 int alarm_day = alarm_cal.get(Calendar.DAY_OF_MONTH);
 int alarm_hour = alarm_cal.get(Calendar.HOUR);
 int alarm_minute = alarm_cal.get(Calendar.MINUTE);

1 个答案:

答案 0 :(得分:0)

SimpleDateFormat没有任何问题。问题在于Calendar如何存储月份。它以0作为Calendar.JANUARY开头,因此您的非格式化月份将比“实际月份”少显示1个。

至于12小时与24小时,请使用HH 24小时,而不是hh中的SimpleDateFormat