我有一个配置文件,可以从其中读取一周中的一天和一天中的某个时间(24小时格式)。样本条目如下所示:

NextRun=Sunday|15:00:00


我将它们解析为daytime变量。但是,我想找到下一个星期日3:00 pm的等效毫秒时间戳。

因此,例如,如果今天是星期天4:00 pm或星期二1:00 am,则将是下一个星期日3:00 pm,但是如果现在是星期日2:30 pm,则预计时间将是现在的30分钟。

最佳答案

获取一个Calendar实例,并使用解析的时间和日期进行设置。如果已经过去,则增加一周。

Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
c.set(Calendar.HOUR_OF_DAY, 15);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
if (c.getTimeInMillis() - Calendar.getInstance().getTimeInMillis() < 0)
    c.add(Calendar.DAY_OF_YEAR, 7);
return c.getTimeInMillis();

07-24 09:45
查看更多