Joda对时间的操作

Joda-Time:专门处理日期时间的库

使用

(1)导入maven

        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.9.9</version>
        </dependency>

(2)事例

public class JodaTest {
    @Test
    public void fun1() {
        DateTime time = new DateTime();
        //格式化字符串
        String time1 = time.toString("yyyy-MM-dd HH:mm:ss EE");
        System.out.println("*******   time1 : " + time1);

        //转换为Date
        Date time2 = time.toDate();
        System.out.println("time2 : "+ time2);

        //时间解析
        DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
        DateTime d = DateTime.parse("2017-10-17 20:06:05", format);
        System.out.println("*******   d : " + d);

        //增加、减少日期(数值为负就是减少日期)
        DateTime dateTime1 = DateTime.parse("2012-12-03");
        System.out.println("*******   30 : " + dateTime1.plusDays(30));
        System.out.println("*******   3 : " + dateTime1.plusHours(3));
        System.out.println("*******   3 : " + dateTime1.plusMinutes(3));
        System.out.println("*******   2 : " + dateTime1.plusMonths(2));
        System.out.println("*******   4 : " + dateTime1.plusSeconds(4));
        System.out.println("*******   2 : " + dateTime1.plusWeeks(5));
        System.out.println("*******   4 : " + dateTime1.plusYears(3));

        //判断是否闰月
        boolean leap = new DateTime().monthOfYear().isLeap();
        System.out.println(leap);

        //得到某一日期的年与日时分秒
        DateTime t = new DateTime();
        System.out.println("******* 年 : " + time.getYear());
        System.out.println("******* 月 : " + time.getMonthOfYear());
        System.out.println("******* 日 : " + time.getDayOfMonth());
        System.out.println("******* 时 : " + time.getHourOfDay());
        System.out.println("******* 分 : " + time.getMinuteOfHour());
        System.out.println("******* 秒 : " + time.getSecondOfMinute());

        //获得两个时间相差的年、月、日、时、分、秒
        LocalDate start = new LocalDate(new DateTime("2017-02-02"));
        LocalDate end = new LocalDate(new DateTime("2017-03-02"));
        int years = Years.yearsBetween(start, end).getYears(); //相差多少年
        int months = Months.monthsBetween(start, end).getMonths(); //相差多少月
        int days = Days.daysBetween(start, end).getDays(); //相差多少日
        int hours = Hours.hoursBetween(start, end).getHours(); //相差多少日
        int minutes = Minutes.minutesBetween(start, end).getMinutes(); //相差多少分
        int seconds = Seconds.secondsBetween(start, end).getSeconds(); //相差多少秒
        System.out.println(years+" "+months+" "+days+" "+hours+" "+minutes+" "+seconds);

        //获取18天之后的某天在下个月的当前周的第一天/最后一天日期
        String t1 = new DateTime().plusDays(18).plusMonths(1).dayOfWeek().withMinimumValue().toString("yyyy-MM-dd HH:mm:ss");
        System.out.println(t1);
        String t2 = new DateTime().plusDays(18).plusMonths(1).dayOfWeek().withMaximumValue().toString("yyyy-MM-dd HH:mm:ss");
        System.out.println(t2);

    }
}

输出结果

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值