Java获取上一天、上一月、上一年、当天的起止时间

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);
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值