joda-time使用心得
1.如何将JavaDate转换为JodaDateTime:
我们在使用joda-time的时候难免会跟dataObject类里面的JavaDate打交道,但是不转换还是用不了,这里提供了解决方案:
Date date = new Date();
DateTime dateTime = new DateTime(date);
相反,也可以反过来转换回去
Date dateNew = dateTime.toDate();
2.总不可能给前端返回去一个joda-time的JSON数据吧
由于jodatime里面有很多字段是我们前端不需要的,比如前端只需要个年月日时间,你给人家返回去时区等等各种不需要的信息,这里提供了解决方案
我们在返回前端的VO里面将时间设置为String类型而不是Datetime 类型
private String postDate;
private String wantDay;
然后我们使用DateTimeFormat.forPattern方法把Datetime类型转化为我们想要的类型,这里我们设置成这种格式,时间出来就是"2019-09-05 21:01:17",
listsVO.setPostDate(listsModel.getPostDate().toString(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")));
listsVO.setWantDay(listsModel.getWantDay().toString(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")));
这里返回的JSON数据就是这种String类型的了,也便于我们看时间了
"postDate": "2019-09-05 21:01:17",
"wantDay": "2019-09-07 21:01:25",
3.Date类型从postman里传入的应该是什么值
一般来说是按照这样的格式传入进去的
4.joda-time一些特性
jodatime封装了一些方法便于时间的处理,下图第一行我获得了一个传入值的当天0点时间。
在第二行用了isBefore()和isAfter()方法,去比较时间,返回的是一个布尔类型的值,有了这些方法,我们能快速比较时间和获得一些特殊时间~
1.DateTime zeroDate=new DateTime(makeDate).withMillisOfDay(0);
2.if(listsModel.getWantDay().isBefore(new DateTime(makeDate))&&listsModel.getWantDay().isAfter(zeroDate)){...}