求java代码获取上个月最后一天最后一秒的时间
发布网友
发布时间:2022-04-27 05:41
我来回答
共3个回答
热心网友
时间:2022-04-24 21:01
用这个方法吧:入参,可以是指定的日期, 返回 制定日期上个月最后一毫秒的时间点
public static Date getLastMonthEndTime(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.MONTH, -1);
c.set(Calendar.DAY_OF_MONTH,c.getActualMaximum(Calendar.DAY_OF_MONTH));//设置为最后一天
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
c.set(Calendar.MILLISECOND, 999);
return c.getTime();
}
热心网友
时间:2022-04-24 22:19
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
//获取当前时间
Calendar cal = Calendar.getInstance();
//调到上个月
cal.add(Calendar.MONTH, -1);
//得到一个月最最后一天日期(31/30/29/28)
int MaxDay=cal.getMaximum(Calendar.DAY_OF_MONTH);
//按你的要求设置时间
cal.set( cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23, 59, 59);
//按格式输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(cal.getTime()));
}
}追问如果跨年了呢
追答跨年同样可以,Calendar这个类很强大。会自动识别的,上面代码在有点问题,int MaxDay=cal.getMaximum(Calendar.DAY_OF_MONTH);被我改了一下
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
//获取当前时间
Calendar cal = Calendar.getInstance();
//下面可以设置月份,注:月份设置要减1,所以设置1月就是1-1,设置2月就是2-1,如此类推
cal.set(Calendar.MONTH, 1-1);
//调到上个月
cal.add(Calendar.MONTH, -1);
//得到一个月最最后一天日期(31/30/29/28)
int MaxDay=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//按你的要求设置时间
cal.set( cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23, 59, 59);
//按格式输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(cal.getTime()));
}
}
热心网友
时间:2022-04-24 23:54
public String getLastMonthDay() {
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
int year = 0;
int month = cal.get(Calendar.MONTH); // 上个月月份
// int day1 = cal.getActualMinimum(Calendar.DAY_OF_MONTH);//起始天数
int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 结束天数
System.out.println("###last month:" + month);
if (month == 0) {
year = cal.get(Calendar.YEAR) - 1;
month = 12;
} else {
year = cal.get(Calendar.YEAR);
}
String endDay = year + "-" + month + "-" + day;
return endDay+" 23:59:59"
}