Java获取上一天、上一月、上一年、当天的起止时间??
获取上一天的起止时间:
public static void main(String[] args) {
/**当前时间*/
Date dNow = new Date();
Date dBefore = new Date();
/**得到日历*/
Calendar calendar = Calendar.getInstance();
/**把当前时间赋给日历*/
calendar.setTime(dNow);
/**设置为前一天*/
calendar.add(Calendar.DAY_OF_MONTH, -1);
/**得到前一天的时间*/
dBefore = calendar.getTime();
/**设置时间格式*/
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
/**格式化前一天*/
String startTime = sdf.format(dBefore);
/**上一天开始时间*/
startTime = startTime+" 00:00:00";
/**上一天结束时间*/
String endTime = startTime.substring(0,10)+" 23:59:59";
System.out.println("前一天的起始时间是:" + startTime);
System.out.println("前一天的结束时间是:" + endTime);
}
获取上一月的起止时间:
public static void main(String[] args) {
/**得到日历*/
Calendar c=Calendar.getInstance();
/**设置为前一月*/
c.add(Calendar.MONTH, -1);
/**设置时间格式*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/***上个月现在时间*/
String nowTime = sdf.format(c.getTime());
System.out.println("上个月现在时间" + nowTime);
/**上个月天数*/
int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), lastMonthMaxDay, 23, 59, 59);
/**按格式输出*/
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-01 00:00:00");
/**上月第一天*/
String startTime = sdf2.format(c.getTime());
/**上月最后一天*/
String endTime = sdf.format(c.getTime());
System.out.println("前一月的起始时间是:" + startTime);
System.out.println("前一月的结束时间是:" + endTime);
}
获取当天的起止时间:
public static void main(String[] args) {
/**设置时间格式*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**得到日历 赋值 开始时间*/
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
/**得到日历 赋值 结束时间*/
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
/**当天开始时间*/
String startTime = sdf.format(todayStart.getTime());
/**当天结束时间*/
String endTime = sdf.format(todayEnd.getTime());
System.out.println("开始时间:" + startTime);
System.out.println("结束时间:" + endTime);
}
附加:获取过去一天,过去一月,过去一年的日期:
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
//过去九天
c.setTime(new Date());
c.add(Calendar.DATE, - 9);
Date d = c.getTime();
String day = format.format(d);
System.out.println("过去九天:"+day);
//过去一月
c.setTime(new Date());
c.add(Calendar.MONTH, -1);
Date m = c.getTime();
String mon = format.format(m);
System.out.println("过去一个月:"+mon);
//过去三个月
c.setTime(new Date());
c.add(Calendar.MONTH, -3);
Date m3 = c.getTime();
String mon3 = format.format(m3);
System.out.println("过去三个月:"+mon3);
//过去一年
c.setTime(new Date());
c.add(Calendar.YEAR, -1);
Date y = c.getTime();
String year = format.format(y);
System.out.println("过去一年:"+year);
}