我有一个配置文件,我在那里阅读一周中的某一天和24小时格式的时间。示例条目如下所示:
NextRun=Sunday|15:00:00
我会将它们解析为day
和time
个变量。但是,我想找到下周日下午3:00的等效毫秒时间戳。
例如,如果今天是星期日下午4:00或星期二凌晨1:00,那将是下一个星期日下午3:00,但如果现在是星期日下午2:30,预计时间将是30分钟。< / p>
答案 0 :(得分:1)
获取一个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();
答案 1 :(得分:0)
使用扩展GregorianCalendar的Calendar。尝试类似的事情:
GregorianCalendar currentTime = new GregorianCalendar();
GregorianCalendar targetTime = new GregorianCalendar();
//Get Day and Time from config file
targetTime.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
//Add a week if the targetTime is from last Sunday
if (targetTime.before(currentTime))
{
targetTime.add(Calendar.DAY_OF_YEAR, 7);
}
System.out.println(currentTime.getTime().toString() + ", " + targetTime.getTime().toString());