2013-10-31 34 views
0

我在下午2:25在android Google Calendar中创建了一个闹钟。然后我尝试捕获事件闹钟的意图,但是当我格式化闹钟时间时,它显示的是不同的时间。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); 
+0

如何打印非格式化日期? –

回答

0

没有什么不对您的SimpleDateFormat。问题在于Calendar如何存储月份。它从0开始为Calendar.JANUARY,所以您的非格式化月份将显示为比“真实月份”少1个月。

至于12小时和24小时,使用HH为24小时,而不是在SimpleDateFormathh

+0

感谢您的答案,我想我找到了原因。 当我设置15分钟提醒时,即使真正的闹钟应该在15分钟后,它也会获得闹钟时间和开始时间。 – jantox

+1

啊,我明白了。是的,警报是根据提醒设置的,而不是真实的事件时间。如果您想在活动时间发出警报,请将提醒设置为0分钟:) –