##一、描述
Joda-Time工具库是一个非常方便的一个工具,能够很方便的对一个时间点做多次的处理,最后返回你需要的结果,比用原生的日期API好用多了。
##二、常用API
创建一个时间操作类,给他赋值一个时间,参数可以是String,也可以直接指定年月日小时分钟秒
DateTime beginTime = new DateTime("2017-05-02");
一个月之后,那一周的第一天的日期 ``` DateTime dateTime = new DateTime("2017-05-02"); System.out.println(dateTime.plusMonths(1).dayOfMonth().withMinimumValue().toString("yyyy-MM-dd")); //输出:2017-06-01 ```
计算间隔和区间(这里的比较都是只有年月日)
DateTime beginTime = new DateTime("2017-05-02");
DateTime endTime = new DateTime("2017-09-14");
//第一种方法
Duration duration = new Duration(beginTime, endTime);
System.out.println(duration.getStandardDays() + "天");
System.out.println(duration.getStandardHours() + "小时");
System.out.println(duration.getStandardMinutes() + "分钟");
//输出:
//135天
//3240小时
//194400分钟
//第二种方法,这个方法可以选择他的类型,可以选择间隔的月份如下,也可以选择其他的天,小时等
Period p = new Period(beginTime, endTime, PeriodType.months());
System.out.println(p.getMonths());
//输出:4
//第三种方法,
Interval interval = new Interval(beginTime, endTime);
boolean contained = interval.contains(new DateTime("2017-05-20"));
System.out.println(contained);
//输出true
日期与日期进行比较大小 ``` DateTime a = new DateTime("2017-12-29"); DateTime b = new DateTime("2017-12-29"); System.out.println("A时间 等于 B时间" + a.isEqual(b)); System.out.println("A时间 大于 B时间" + a.isAfter(b)); System.out.println("A时间 小于 B时间" + a.isBefore(b)); //A时间 等于 B时间true //A时间 大于 B时间false //A时间 小于 B时间false ```
解析一个Date,然后进行处理
DateTimeFormatter format = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss");
//时间解析
DateTime dateTime = DateTime.parse("2012-12-21 23:22:45", format);
//时间格式化,输出==> 2012/12/21 23:22:45 Fri
String string_u = dateTime.toString("yyyy/MM/dd HH:mm:ss EE");
System.out.println(string_u);
//格式化带Locale,输出==> 2012年12月21日 23:22:45 星期五
String string_c = dateTime.toString("yyyy年MM月dd日 HH:mm:ss EE",Locale.CHINESE);
System.out.println(string_c);