时间又到了上午 10 点
Posted
技术标签:
【中文标题】时间又到了上午 10 点【英文标题】:Time until it's 10 am again 【发布时间】:2018-01-31 16:43:36 【问题描述】:我正在尝试每天上午 10 点发布通知。 通知已经每天发送,但不是在上午 10 点,所以我需要为我的 AlarmManager 计算再次等到上午 10 点的时间。
DateFormat dateFormat = new SimpleDateFormat("HH:mm");
long target = dateFormat.parse("10:00").getTime();
我试过这个,但我得到的时间戳是 50 年前左右......(我认为这是第一次是从时间戳开始计算后的上午 10 点)
那么我如何计算等待再次到上午 10 点的毫秒数?
【问题讨论】:
【参考方案1】:使用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
【讨论】:
【参考方案2】:您应该使用一个 Calendar 对象并将一天中的 Hour 设置为上午 10 点,而不是从该日历对象(如 calender.getTime() 获取时间)它将返回 long 并将设置为 setRepeating(calender.getTime()) 而设置报警管理器。
【讨论】:
以上是关于时间又到了上午 10 点的主要内容,如果未能解决你的问题,请参考以下文章