时间又到了上午 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 点的主要内容,如果未能解决你的问题,请参考以下文章

2017-01-06

正则表达式匹配涉及上午/下午的时间范围,如上午 7 点至晚上 10 点

2023河南事业单位联考报名时间用手机提醒

又到了立flag时间

fullcalendar在上午10点之前没有显示时间

ACM_夏天到了,又到了出游的季节