时间又到了上午 10 点

Time until it's 10 am again

我正在尝试 post 每天上午 10 点发送通知。 通知已经每天发送,但不是在上午 10 点发送,因此我需要计算时间以等待我的 AlarmManager 再次等到上午 10 点。

DateFormat dateFormat = new SimpleDateFormat("HH:mm");
long target = dateFormat.parse("10:00").getTime();

我试过了,但是我得到的时间戳是50年前的...(我认为这是时间戳开始计数后第一次是上午10点的时间)

那么我如何计算再次等待到上午 10 点的毫秒数?

您应该使用一个日历对象并将一天中的小时设置为上午 10 点,而不是从该日历对象获取时间,例如 calender.getTime() 它将 return 长并且将被设置为 setRepeating (calender.getTime()) 设置警报管理器时。

使用 Calendar 而不是 SimpleDateFormat 来进行时间操作。

为了找到第二天上午 10 点:

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