public static void main(String[] args) {
System.out.println("==获取本周的开始时间==" + getOneDayBeginTime(0, "start"));
System.out.println("==获取本周的结束时间==" + getOneDayBeginTime(6, "end"));
}
/**
* 获取某个日期的开始或结束时间
* @param amount
* @param type (start,end)
* @return
*/
public static Date getOneDayBeginTime(int amount, String type) {
Calendar cal = Calendar.getInstance();
cal.setTime(getBeginDayOfWeek());
cal.add(Calendar.DAY_OF_WEEK, amount);
Date weekEndSta = cal.getTime();
return getDayTime(weekEndSta,type);
}
/**
* 获取本周的开始时间
* @return
*/
public static Date getBeginDayOfWeek() {
Date date = new Date();
if (date == null) {
return null;
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
if (dayofweek == 1) {
dayofweek += 7;
}
cal.add(Calendar.DATE, 2 - dayofweek);
return getDayTime(cal.getTime(),"start");
}
/**
* 获取某个日期的开始或结束时间
* @param d
* @return
*/
public static Timestamp getDayTime(Date d,String type) {
Calendar calendar = Calendar.getInstance();
if (null != d) {
calendar.setTime(d);
}
if(type.equals("start")){
calendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH),
0, 0, 0);
calendar.set(Calendar.MILLISECOND, 0);
}else if(type.equals("end")){
calendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH),
23, 59, 59);
calendar.set(Calendar.MILLISECOND, 999);
}else{
return null;
}
return new Timestamp(calendar.getTimeInMillis());
}
结果:
==获取本周的开始时间==2018-09-24 00:00:00
==获取本周的结束时间==2018-09-30 23:59:59
本文详细介绍了如何使用Java进行时间操作,包括获取本周的开始和结束时间,以及如何将日期设置为一天的开始或结束。通过Calendar和Date类,展示了精确到毫秒的时间控制方法。
950

被折叠的 条评论
为什么被折叠?



