我想在每天上午10点发布通知。 通知每天发送,但不是在上午10点发送,所以我需要计算等待上午10点再次为我的AlarmManager的时间。
DateFormat dateFormat = new SimpleDateFormat("HH:mm");
long target = dateFormat.parse("10:00").getTime();
我试过这个,但我得到的时间戳大约是50年前......(我想这是时间戳开始计时后第一次上午10点的时间)
那么如何计算等到再次上午10点的毫秒数?
答案 0 :(得分:0)
您应该使用一个Calendar对象并设置当天上午10点的时间,而不是从该日历对象获取时间,如calender.getTime(),它将返回long并将设置为setRepeating(calender.getTime())设置闹钟管理器。
答案 1 :(得分:0)
使用Calendar
代替SimpleDateFormat
进行时间操作。
为了在第二天找到10AM:
final Calendar c = Calendar.getInstance()
c.set(Calendar.HOUR_OF_DAY, 10) // For 10AM
c.add(Calendar.DATE, 1) // Add 1 to date == tomorrow
final Date d = c.getTime()
// Do what you want with the date