我在下午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);
答案 0 :(得分:0)
SimpleDateFormat
没有任何问题。问题在于Calendar
如何存储月份。它以0
作为Calendar.JANUARY
开头,因此您的非格式化月份将比“实际月份”少显示1个。
至于12小时与24小时,请使用HH
24小时,而不是hh
中的SimpleDateFormat
。