/**
* @Title testMapUtil
* @Description:测试DateTime的Api
* @date: 2019-10-16 10:31
* @return:void
*/
public static void main(String[] args) {
test();
}
/**
* 获得当前时间
*/
public static void test(){
DateTime date = DateTime.now();
System.out.println(date.toLocalTime());// 时分秒
System.out.println(date.toLocalDate());// 年月日
System.out.println(date.toLocalDateTime());// 年月日时分秒
}
/**
* 时间运算
*/
public static void test1(){
DateTime date = DateTime.now();
System.out.println(date.toLocalTime().minusHours(2));// 时分秒 - 时
System.out.println(date.toLocalDate().minusDays(10));// 年月日 - 日
System.out.println(date.toLocalDateTime().plusYears(4));// 年月日时分秒 + 年
}
/**
* 字符串转时间
*/
public static void test2(){
Map<String,Object> map = new HashMap();
map.put("date","2019-04-19 19:49:00");
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime date = DateTime.parse(MapUtils.getString(map, "date"),dtf);
System.out.println(date);
}
/**
* 时间比较
*/
public static void test3(){
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime last = DateTime.parse("2019-04-19 19:49:00",dtf);
DateTime now = DateTime.parse("2019-10-16 11:30:00",dtf);
System.out.println(now.toLocalDate().minusDays(180).equals(last.toLocalDate()));
}
优点:计算时间特别方便
缺点:mybatis和json都没有兼容
组件兼容性:
- myBatis (mybatis-spring v1.3.0) 暂不支持 localDateTime
- Json (com.fasterxml.jackson.core v2.5.4) 貌似也没特别的支持, 序列化的结果如下
总结:
当前情况下, 业务计算建议使用 LocalDateTime, 业务计算以外建议转化为 Date