java现在应该是更新到16了,想想我当年刚参加工作的时候。普遍还都是java7,那时候没有SpringBoot,没有springCloud,没有我的那个她 哈哈,扯的有点远了,拉回正题
今天我们聊聊java的日期类的一些骚操作
Java 8 中的 LocalDate 用于表示当天日期。和java.util.Date不同,它只有日期,不包含时间。当你仅需要表示日期时就用这个类。
LocalDate today = LocalDate.now(); System.out.println("Today's Local date : " + today); Today's Local date : 2021-08-27
那接下来比如我们获取具体的年月日
LocalDate today = LocalDate.now(); int year = today.getYear(); int month = today.getMonthValue(); int day = today.getDayOfMonth(); System.out.printf("Year="+year + "month =" +month + "day ="+day); Year=2021month = 8day=27
那肯定有小伙伴问了,那比如我们平时工作过程中怎么指定格式化日期呢?
在上面第一个例子里,我们通过静态工厂方法now()非常容易地创建了当天日期,你还可以调用另一个有用的工厂方法LocalDate.of()创建任意日期, 该方法需要传入年、月、日做参数,返回对应的LocalDate实例。
LocalDate yearAndMonthDay = LocalDate.of(2021, 08, 27); System.out.println("yearAndMonthDay is : " + yearAndMonthDay); yearAndMonthDay is : 2021-08-27
先介绍这几种,下面给出自己再封装的一些常用方法
下面我是在平常过程当中简单写了几个工具方法
** * java 8 日期工具类再封装 * 尽量用java8的工具类操作日期 * @Date 2021/6/2 4:01 下午 * @Author yn */ @Component public class LocalDateUtil { /** * 比较第一个日期是否小于第二个日期 * @param firstDate 第一个日期 * @param secondDate 第二个日期 * @return true-小于;false-大于 */ public static boolean localDateIsBefore(LocalDate firstDate, LocalDate secondDate) { return firstDate.isBefore(secondDate); } /** * 比较第一个日期是否大于第二个日期 * @param firstDate 第一个日期 * @param secondDate 第二个日期 * @return true-大于;false-不大于 */ public static boolean localDateIsAfter(LocalDate firstDate, LocalDate secondDate) { return firstDate.isAfter(secondDate); } /** * 比较两个日期是否相等 * @param firstDate 第一个日期 * @param secondDate 第二个日期 * @return true-相等;false-不相等 */ public static boolean localDateIsEqual(LocalDate firstDate, LocalDate secondDate) { return firstDate.isEqual(secondDate); } /** * 字符串转换datetime * @param dateTime * @return yyyy-MM-dd HH:mm:ss */ public static Date stringCoverDateTime(String dateTime){ LocalDateTime startDateTime = LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); Date LocalDateTimeToDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()); return LocalDateTimeToDate; } /** * 字符串转换date * @param dateTime * @return yyyy-MM-dd */ public static Date stringCoverDate(String dateTime){ LocalDateTime startDateTime = LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")); Date LocalDateTimeToDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()); return LocalDateTimeToDate; } }
为了弥补传统Java对日期、时间处理的不足,Java8提供了一套全新的日期时间库。Java8专门新增了一个java.time包,该包下包含了如下常用类。(各位小伙伴可以去该包下面看下)
1)now():获取当前时刻。
2)now(Clock clock):获取clock对应的时刻。
3)minusXxx():在当前时刻基础上减去一段时间。
4)plusXxx():在当前时刻基础上加上一段时间。
OK。java8的日期的类先介绍到这里
我们应该学会总结,java的每一次迭代 都会更新呢一些有利于我们开发的工具类,我们在日常开发中,要学会利用并总结出一套提高开发效率的一种东西