//获取当前时间 LocalDateTime d0 = LocalDateTime.now(); System.out.println(DataConvertUtil.localDateTimeToStr(d0, "yyyy-MM-dd HH:mm:ss")); //输入年月日时分秒实例化新的时间对象 LocalDateTime d1 = LocalDateTime.of(2017, 5, 15, 20, 32, 12); System.out.println(DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd HH:mm:ss")); //对一个时间对象加5分钟(同理也可加/减,年/月/日/时/分/秒),加是plus,减是minus LocalDateTime d2 = d1.plusMinutes(5); System.out.println(DataConvertUtil.localDateTimeToStr(d2, "yyyy-MM-dd HH:mm:ss")); //对一个时间对象单独设置年月日时分秒 //把小时设为5点 LocalDateTime d21 = d2.withHour(5); //把小时设为5点,0分,0秒 d21 = d2.withHour(6).withMinute(0).withSecond(0); System.out.println(DataConvertUtil.localDateTimeToStr(d21, "yyyy-MM-dd HH:mm:ss")); //获取日(同理也可获取年月日时分秒) int day = d2.getDayOfMonth(); System.out.println(day); //判断两个时间的先后,可以用isAfter或isBefore,如下例就是判断d2是否晚于d1 boolean b1 = d2.isAfter(d1); System.out.println(b1); //两个时间相减,获取时间差(例子为d2-d1,并获取时间差(单位:分钟)) //类似Duration的还有Period,Period专用于计算年月日 Duration duration = Duration.between(d1, d2); long m1 = duration.toMinutes(); System.out.println(m1); //Date和LocalDateTime互转 Date dx1 = DataConvertUtil.localDateTimeToDate(d1); LocalDateTime d3 = DataConvertUtil.dateToLocalDateTime(dx1); System.out.println(DataConvertUtil.localDateTimeToStr(d3, "yyyy-MM-dd HH:mm:ss")); //Date和LocalDate互转 LocalDate d31 = LocalDate.now(); dx1 = DataConvertUtil.localDateToDate(d31); d31 = DataConvertUtil.dateToLocalDate(dx1); //LocalDateTime按指定格式输出string //还有可指定输出格式版本localDateTimeToStr(LocalDateTime value, String format) String s1 = DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd HH:mm:ss"); System.out.println("s1=" + s1); //string按指定格式转为LocalDateTime //还有可指定格式版本strToLocalDateTime(String value, String format) LocalDateTime d4 = DataConvertUtil.strToLocalDateTime(s1, "yyyy-MM-dd HH:mm:ss"); System.out.println(DataConvertUtil.localDateTimeToStr(d4, "yyyy-MM-dd HH:mm:ss")); //注意!!!!! //由于LocalDateTime类型的限制,字符串转LocalDateTime时字符串值必须完整包含年月日时分秒,而实际情况经常会只有年月日 //对于这种情况,可以用下例的DataConvertUtil.strToLocalDate转为LocalDate类型,然后再把LocalDate转为LocalDateTime String s2 = DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd"); //字符串转LocalDate LocalDate d5 = DataConvertUtil.strToLocalDate(s2, "yyyy-MM-dd"); System.out.println(DataConvertUtil.localDateToStr(d5)); //LocalDate转LocalDateTime LocalDateTime d6 = LocalDateTime.of(d5, LocalTime.of(0, 0)); System.out.println(DataConvertUtil.localDateTimeToStr(d6, "yyyy-MM-dd HH:mm:ss")); //以下补充DataConvertUtil类的相关函数 /** * LocalDateTime转Date * * @param localDateTime * @return */ public static Date localDateTimeToDate(LocalDateTime localDateTime) { if (localDateTime == null) return null; return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); } /** * Date转LocalDateTime * * @param date * @return */ public static LocalDateTime dateToLocalDateTime(Date date) { if (date == null) return null; return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); } /** * LocalDate转Date * * @param localDate * @return */ public static Date localDateToDate(LocalDate localDate) { if (localDate == null) return null; return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); } /** * Date转LocalDate * * @param date * @return */ public static LocalDate dateToLocalDate(Date date) { if (date == null) return null; return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); } /** * 日期时间(LocalDateTime)按默认格式转字符串 * * @param value * @return */ public static String localDateTimeToStr(LocalDateTime value) { return localDateTimeToStr(value, "yyyy-MM-dd"); } /** * 日期时间(LocalDateTime)按指定格式转字符串 * * @param value * @param format * @return */ public static String localDateTimeToStr(LocalDateTime value, String format) { String dateString; if (value == null) { dateString = ""; } else { DateTimeFormatter formatDate = DateTimeFormatter.ofPattern(format); dateString = value.format(formatDate); } return dateString; } /** * 字符串按默认格式转日期时间(LocalDateTime) * * @param value * @return */ public static LocalDateTime strToLocalDateTime(String value) { return strToLocalDateTime(value, "yyyy-MM-dd HH:mm:ss"); } /** * 字符串按指定格式转日期时间(LocalDateTime) * * @param value * @param format * @return */ public static LocalDateTime strToLocalDateTime(String value, String format) { if (value != null && value.trim().length() > 0) { DateTimeFormatter formatDate = DateTimeFormatter.ofPattern(format); try { return LocalDateTime.parse(value, formatDate); } catch (Exception e) { return null; } } return null; }
转载于:https://www.cnblogs.com/cannel/p/11074411.html