0

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

这是我的日志

  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);
4

1 回答 1

0

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

至于 12 小时与 24 小时,请使用HH24 小时,而不是hh在您的SimpleDateFormat.

于 2013-10-31T06:43:02.843 回答