时间又到了上午 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
我正在尝试 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