我想设置一个提醒,并在特定日期发出通知。然后我目前正在使用 AlarmManager 和 NotificationManager 。当我从 dateDialog 设置选定的日期时,提醒起作用了。如何将日历值设置为固定时间的闹钟?我从中获取当前日期和时间:
Calendar calendar = Calendar.getInstance();
然后我可以像下面一样手动设置日历并且它可以工作:
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 13);
calendar.set(Calendar.HOUR, 7);
calendar.set(Calendar.AM_PM, Calendar.AM);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
calendar.set(Calendar.DAY_OF_MONTH, 8);
calendar.set(Calendar.YEAR,2015);
long when = calendar.getTimeInMillis();
但我的问题是如何将日历设置为明天和上午 9:00,或者将日历精确设置为当前日期之后的特定月份(或年份)?我的意思是这样的:
calendar.add(Calendar.DAY_OF_MONTH, 1);
但它不起作用。
For me this works just fine on the desktop, couldn't test it on Android though.
Update: just tested this on my Android phone using AIDE, getting the exact same results.
import java.util.Calendar;
public class CalendarTest {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTimeInMillis() + " -> " + calendar.getTime());
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 13);
calendar.set(Calendar.HOUR, 7);
calendar.set(Calendar.AM_PM, Calendar.AM);
calendar.set(Calendar.MONTH, Calendar.JANUARY);
calendar.set(Calendar.DAY_OF_MONTH, 9);
calendar.set(Calendar.YEAR, 2015);
System.out.println(calendar.getTimeInMillis() + " -> " + calendar.getTime());
calendar.add(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.YEAR, 1);
System.out.println(calendar.getTimeInMillis() + " -> " + calendar.getTime());
}
对于此测试,我的输出正是您所期望的:
1420705649927 -> Thu Jan 08 09:27:29 CET 2015
1420783980927 -> Fri Jan 09 07:13:00 CET 2015
1452406380927 -> Sun Jan 10 07:13:00 CET 2016
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)