当前位置: 代码迷 >> 综合 >> Java8 DateTime的api使用
  详细解决方案

Java8 DateTime的api使用

热度:32   发布时间:2023-12-05 09:25:23.0
/*** @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

  相关解决方案