java当前时间取周、月、季度、年等日期(时间方法大全)

获取当前日期

	//获取当前时间
	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
	System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
	//字符串转 date
	SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
    Date date = simpleDateFormat.parse(stime);
	//用setTime 可以自定义时间   默认当前时间
	Calendar cal = Calendar.getInstance();
	cal.setTime(data);
    

获取今日零点 &+1天

public static void main(String[] args) {
        long current=System.currentTimeMillis();//当前时间毫秒数
        long zero=current/(1000*3600*24)*(1000*3600*24)- TimeZone.getDefault().getRawOffset();//今天零点零分零秒的毫秒数
        long twelve=zero+24*60*60*1000-1;//今天23点59分59秒的毫秒数
        long yesterday=System.currentTimeMillis()-24*60*60*1000;//昨天的这一时间的毫秒数
        System.out.println(new Timestamp(current));//当前时间
        System.out.println(new Timestamp(yesterday));//昨天这一时间点
        System.out.println(new Timestamp(zero));//今天零点零分零秒
        System.out.println(new Timestamp(twelve));//今天23点59分59秒

		 System.out.println("---------- 当前时间+一天 -------------");
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        System.out.println("当前日期:"+sf.format(new Timestamp(twelve)));
        c.add(Calendar.DAY_OF_MONTH, 1);
        System.out.println("增加一天后日期:"+sf.format(c.getTime()));


    }

一周的某天日期 获取前后周始末 日期

//调用 传值 nn= -1上周 0本周 1下周 依次类推
 String arr1[]=addDay(nn);

//封装的方法
public static String[] addDay(int nn) {
        String arr[]=new  String[2] ;
        Calendar cal = Calendar.getInstance();
        //int nn = 1;
        String monday;
        cal.add(Calendar.DATE, nn*7);
        //想周几,这里就传几Calendar.MONDAY(TUESDAY...)
        cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
        monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
        //System.out.println(monday);
        //赋值
        arr[0]=monday;
        String s=monday;
        //一周7天
        int n=7;
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar cd = Calendar.getInstance();
            cd.setTime(sdf.parse(s));
            cd.add(Calendar.DATE, n);//增加一天
            //cd.add(Calendar.MONTH, n);//增加一个月
            //赋值
            arr[1]=sdf.format(cd.getTime());
        } catch (Exception e) {

        }
        return arr;
    }

日取判断是周几

	/**
     * 根据日期获取当天是周几
     * @param datetime 日期
     * @return 周几
     */
    public static String dateToWeek(String datetime) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        Calendar cal = Calendar.getInstance();
        Date date;
        try {
            date = sdf.parse(datetime);
            cal.setTime(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        return weekDays[w];
    }

获取当月的 月初 月末日期

	/**
     *获取当月的 月初 月末日期
     */
    public static String[] getMonthStartEnd(){
        String arr[] = new String[2];
        //月初
        Calendar cal=Calendar.getInstance();
        cal.add(Calendar.MONTH, 0);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        Date time=cal.getTime();
        arr[0] = new SimpleDateFormat("yyyy-MM-dd").format(time);
        //月末
        //Calendar cal=Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
        //Date time=;
        arr[1] = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
        return arr;
    }

获取当前季度的 开始 结束时间

季度和年需要用到,可以自己改下,就是一模板,这里懒的改了

    private final static SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd");
    private final static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");

/**
     * zyh
     * 获取当前季度的 开始 结束时间
     */
    public static String[] getCurrentQuarterStartTime() {
        String arr[] = new String[2];

        Calendar c = Calendar.getInstance();
        int currentMonth = c.get(Calendar.MONTH) + 1;
        SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
        Date now = null;
        try {
            if (currentMonth >= 1 && currentMonth <= 3)
                c.set(Calendar.MONTH, 0);
            else if (currentMonth >= 4 && currentMonth <= 6)
                c.set(Calendar.MONTH, 3);
            else if (currentMonth >= 7 && currentMonth <= 9)
                c.set(Calendar.MONTH, 4);
            else if (currentMonth >= 10 && currentMonth <= 12)
                c.set(Calendar.MONTH, 9);
            c.set(Calendar.DATE, 1);
            arr[0] = shortSdf.format(c.getTime());

            Calendar cal = Calendar.getInstance();
            cal.setTime(longSdf.parse(shortSdf.format(c.getTime())));
            cal.add(Calendar.MONTH, 3);
            arr[1] = shortSdf.format(cal.getTime());

        } catch (Exception e) {
            e.printStackTrace();
        }
        return arr;
    }

当前年的开始时间 和 结束时间

/**
     * 当前年的开始时间 和 结束时间
     *
     * @return
     */
    public static String[] getCurrentYearStartTime() {
        String arr[] = new String[2];
        Calendar c = Calendar.getInstance();
        try {
            c.set(Calendar.MONTH, 0);
            c.set(Calendar.DATE, 1);
            arr[0] = shortSdf.format(c.getTime());

            c.set(Calendar.MONTH, 11);
            c.set(Calendar.DATE, 31);
            arr[1] = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }

        return arr;
    }

判断两时间 相差多少天

//判断两时间 相差多少天
    public static int differentDaysByMillisecond(Date date1,Date date2) {
        int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
        return days;
    }

当前时间+1小时 && 比较两时间相差几小时

//获取当前时间
        SimpleDateFormat sf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
        String time = sf.format(itme.getOrdertime());
        time = "20" + time;
        //获取的当前时间+1小时
        sf.setTimeZone(TimeZone.getTimeZone("GMT+0"));
        Date date = sf.parse(time);
        sf.setTimeZone(TimeZone.getTimeZone("GMT+1"));
        String time22 = sf.format(date);
        time22 = "20" + time22;
        //字符串转日期
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date12 = null;
        date12 = format.parse(time22);

        /** 比较两个时间相差小时 */
            double hour = 0;
            double millisecond = new Date().getTime() - date12.getTime();

            hour = millisecond / (60 * 60 * 1000);
			System.out.println(hour );//差值
           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值