DateUtils

package jiang;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;

import org.apache.commons.lang3.time.DateUtils;

public class DateUtilsTest {
    public static void main(String[] args) {
        new DateUtilsTest();
    }

    public DateUtilsTest() {
        // 当前时间是大约是2016.1.21 9:36 am,每个test输出可能会查几秒到几分钟,因为例子不是一下子写完的
        test1();
        test2();
        test3();
        test4();
        test5();
        test6();
        test7();
        test8();
        test9();
        test10();
        test11();
        test12();
    }

    public void printFormatDate(Date d) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(df.format(d));
    }

    public void test1() {// 下个月第一天
        Date d = new Date();
        d = DateUtils.ceiling(d, Calendar.MONTH);// 进位月份
        printFormatDate(d);// 2016-02-01 00:00:00
    }

    public void test2() {// 下个月第一天
        Date d = new Date();
        d = DateUtils.addMonths(d, 1);// 月+1
        d = DateUtils.setDays(d, 1);// 设置日为1号
        d = DateUtils.truncate(d, Calendar.DATE);// 过滤时分秒
        printFormatDate(d);// 2016-02-01 00:00:00
    }

    public void test3() {// 当月最后一天最后一秒
        Date d = new Date();
        d = DateUtils.ceiling(d, Calendar.MONTH);// 进位月份
        d = DateUtils.addMilliseconds(d, -1);// 减少1秒
        printFormatDate(d);// 2016-01-31 23:59:59
    }

    public void test4() {// 当月第一天第一秒
        Date d = new Date();
        d = DateUtils.truncate(d, Calendar.MONTH);// 截取时间到月份
        printFormatDate(d);// 2016-01-01 00:00:00
    }

    public void test5() {// 下个月的这个时候
        Date d = new Date();
        d = DateUtils.addMonths(d, 1);
        printFormatDate(d);// 2016-02-21 09:46:02
    }

    public void test6() {// 昨天的这个时候
        Date d = new Date();
        d = DateUtils.addDays(d, -1);// 增加1月,如果下个月没有这1天,那就不加
        printFormatDate(d);// 2016-01-20 09:46:48
    }

    public void test7() {// addMonth的注意点:2月没有29号
        Date d = new Date();
        d = DateUtils.setDays(d, 29);
        d = DateUtils.addMonths(d, 1);// 并没有增加
        printFormatDate(d);// 2016-01-29 09:47:45
    }

    public void test8() {// 这个月15号
        Date d = new Date();
        d = DateUtils.setDays(d, 15);
        d = DateUtils.truncate(d, Calendar.DATE);// 截取时间到日
        printFormatDate(d);// 2016-01-15 00:00:00
    }

    public void test9() {// 输出包含今天的这个星期的每一天,星期第一天是周日
        Date d = new Date();
        Iterator<Calendar> c = DateUtils.iterator(d, DateUtils.RANGE_WEEK_SUNDAY);
        System.out.println();
        while (c.hasNext()) {
            printFormatDate(new Date(c.next().getTimeInMillis()));
        }
    }

    public void test10() {// 今天是今年第几天
        Date d = new Date();
        System.out.println(DateUtils.getFragmentInDays(d, Calendar.YEAR));// 21
    }

    public void test11() {// 这个月第一个周日
        Date d = new Date();
        d = DateUtils.setDays(d, 1);
        while (true) {
            Calendar c = Calendar.getInstance();
            c.setTime(d);
            if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
                printFormatDate(d);// 2016-01-03 10:31:43
                break;
            } else {
                d = DateUtils.addDays(d, 1);
            }
        }
    }

    public void test12() {// 距2月1号还有多少天
        Date d = new Date();
        Date d2 = new Date();
        d2 = DateUtils.ceiling(d, Calendar.MONTH);// 2.1号
        long day2 = DateUtils.getFragmentInDays(d2, Calendar.YEAR);//2.1是今年第几天?
        long day1 = DateUtils.getFragmentInDays(d, Calendar.YEAR);//今天是今年第几天?
        System.out.println(day2 - day1);//11
    }
}

 

package jiang;
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Iterator;
import org.apache.commons.lang3.time.DateUtils;
public class DateUtilsTest {    public static void main(String[] args) {        new DateUtilsTest();    }
    public DateUtilsTest() {        // 当前时间是大约是2016.1.21 9:36 am,每个test输出可能会查几秒到几分钟,因为例子不是一下子写完的        test1();        test2();        test3();        test4();        test5();        test6();        test7();        test8();        test9();        test10();        test11();        test12();    }
    public void printFormatDate(Date d) {        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        System.out.println(df.format(d));    }
    public void test1() {// 下个月第一天        Date d = new Date();        d = DateUtils.ceiling(d, Calendar.MONTH);// 进位月份        printFormatDate(d);// 2016-02-01 00:00:00    }
    public void test2() {// 下个月第一天        Date d = new Date();        d = DateUtils.addMonths(d, 1);// 月+1        d = DateUtils.setDays(d, 1);// 设置日为1号        d = DateUtils.truncate(d, Calendar.DATE);// 过滤时分秒        printFormatDate(d);// 2016-02-01 00:00:00    }
    public void test3() {// 当月最后一天最后一秒        Date d = new Date();        d = DateUtils.ceiling(d, Calendar.MONTH);// 进位月份        d = DateUtils.addMilliseconds(d, -1);// 减少1秒        printFormatDate(d);// 2016-01-31 23:59:59    }
    public void test4() {// 当月第一天第一秒        Date d = new Date();        d = DateUtils.truncate(d, Calendar.MONTH);// 截取时间到月份        printFormatDate(d);// 2016-01-01 00:00:00    }
    public void test5() {// 下个月的这个时候        Date d = new Date();        d = DateUtils.addMonths(d, 1);        printFormatDate(d);// 2016-02-21 09:46:02    }
    public void test6() {// 昨天的这个时候        Date d = new Date();        d = DateUtils.addDays(d, -1);// 增加1月,如果下个月没有这1天,那就不加        printFormatDate(d);// 2016-01-20 09:46:48    }
    public void test7() {// addMonth的注意点:2月没有29号        Date d = new Date();        d = DateUtils.setDays(d, 29);        d = DateUtils.addMonths(d, 1);// 并没有增加        printFormatDate(d);// 2016-01-29 09:47:45    }
    public void test8() {// 这个月15号        Date d = new Date();        d = DateUtils.setDays(d, 15);        d = DateUtils.truncate(d, Calendar.DATE);// 截取时间到日        printFormatDate(d);// 2016-01-15 00:00:00    }
    public void test9() {// 输出包含今天的这个星期的每一天,星期第一天是周日        Date d = new Date();        Iterator<Calendar> c = DateUtils.iterator(d, DateUtils.RANGE_WEEK_SUNDAY);        System.out.println();        while (c.hasNext()) {            printFormatDate(new Date(c.next().getTimeInMillis()));        }    }
    public void test10() {// 今天是今年第几天        Date d = new Date();        System.out.println(DateUtils.getFragmentInDays(d, Calendar.YEAR));// 21    }
    public void test11() {// 这个月第一个周日        Date d = new Date();        d = DateUtils.setDays(d, 1);        while (true) {            Calendar c = Calendar.getInstance();            c.setTime(d);            if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {                printFormatDate(d);// 2016-01-03 10:31:43                break;            } else {                d = DateUtils.addDays(d, 1);            }        }    }
    public void test12() {// 距2月1号还有多少天        Date d = new Date();        Date d2 = new Date();        d2 = DateUtils.ceiling(d, Calendar.MONTH);// 2.1号        long day2 = DateUtils.getFragmentInDays(d2, Calendar.YEAR);//2.1是今年第几天?        long day1 = DateUtils.getFragmentInDays(d, Calendar.YEAR);//今天是今年第几天?        System.out.println(day2 - day1);//11    }}

转载于:https://www.cnblogs.com/xjatj/p/9262528.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值