Java日期工具类LocalDateTime

Java日期工具类LocalDateTime

  • 嘚吧嘚
  • LocalDateTime - API
    • 创建时间
    • 获取年月日时分秒
    • 增加时间
    • 减少时间
    • 替换时间
    • 日期比较

嘚吧嘚

压轴的来了,个人感觉LocalDateTime是使用频率最高的工具类,所以本篇像文章详细研究说明一下。
如果看了Java日期工具类LocalDate和Java时间工具类LocalTime,那么本篇文章就算是一个整合、进阶吧。

LocalDateTime - API

创建时间

函数声明 描述
static LocalDateTime now() 获取默认时区的当前日期时间
static LocalDateTime now(ZoneId zone) 获取指定时区的当前日期时间
static LocalDateTime now(Clock clock) 从指定时钟获取当前日期时间
static LocalDateTime of(LocalDate date, LocalTime time) 根据日期和时间对象获取LocalDateTime对象
static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, int minute, int second) 根据指定的年、月、日、时、分、秒获取LocalDateTime实例

LocalDateTime now()

获取指定时区、时钟的日期时间就不多做说明了,和LocalDate一样。

// 获取当前时间
LocalDateTime now = LocalDateTime.now();
System.out.println("now : " + now);
// 格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowStr = now.format(formatter);
System.out.println("nowStr : " + nowStr);

Java日期工具类LocalDateTime_第1张图片
LocalDateTime of()
Java日期工具类LocalDateTime_第2张图片

获取年月日时分秒

函数声明 描述
int getYear() 获取年份
Month getMonth() 获取月份,返回值为月份的枚举
int getMonthValue() 获取月份,返回值为int类型月份
DayOfWeek getDayOfWeek() 获取日期是星期几
int getDayOfMonth() 获取日期在该月是第几天
int getDayOfYear() 获取日期在该年是第几天
int getHour() 获取小时
int getMinute() 获取分钟
int getSecond() 获取秒钟
int getNano() 获取纳秒
LocalDateTime now = LocalDateTime.now();
// 获取年
System.out.println("getYear : " + now.getYear());
// 获取月份
System.out.println("getMonth : " + now.getMonth());
System.out.println("getMonthValue : " + now.getMonthValue());
// 获取日
System.out.println("getDayOfWeek : " + now.getDayOfWeek());
System.out.println("getDayOfMonth : " + now.getDayOfMonth());
System.out.println("getDayOfYear : " + now.getDayOfYear());
// 获取小时
System.out.println("getHour : " + now.getHour());
// 获取分钟
System.out.println("getMinute : " + now.getMinute());
// 获取秒
System.out.println("getSecond : " + now.getSecond());
// 获取纳秒
System.out.println("getNano : " + now.getNano());

Java日期工具类LocalDateTime_第3张图片

增加时间

虽然是增加时间,传参可为正数,也可为负数。传参为正数时增加,传参为负数时减少。

函数声明 描述
LocalDateTime plusYears(long years) 增加年
LocalDateTime plusMonths(long months) 增加月份
LocalDateTime plusWeeks(long weeks) 增加周
LocalDateTime plusDays(long days) 增加日
LocalDateTime plusHours(long hours) 增加小时
LocalDateTime plusMinutes(long minutes) 增加分钟
LocalDateTime plusSeconds(long seconds) 增加秒
LocalDateTime plusNanos(long nanos) 增加纳秒

增加年、月、周、日

LocalDateTime now = LocalDateTime.now();
System.out.println("now:" + now);
// 修改年份
System.out.println("plusYears : " + now.plusYears(1));
System.out.println("plusYears : " + now.plusYears(-1));
// 修改月份
System.out.println("plusMonths : " + now.plusMonths(1));
System.out.println("plusMonths : " + now.plusMonths(-2));
// 修改周
System.out.println("getDayOfWeek : " + now.plusWeeks(1));
System.out.println("getDayOfWeek : " + now.plusWeeks(-2));
// 修改日
System.out.println("plusDays : " + now.plusDays(3));
System.out.println("plusDays : " + now.plusDays(-3));

Java日期工具类LocalDateTime_第4张图片

增加时、分、秒、纳秒

        LocalDateTime now = LocalDateTime.now();
        System.out.println("now:" + now);
        // 修改小时
        System.out.println("plusHours : " + now.plusHours(2));
        System.out.println("plusHours : " + now.plusHours(-5));
        // 修改分钟
        System.out.println("plusMinutes : " + now.plusMinutes(20));
        System.out.println("plusMinutes : " + now.plusMinutes(-15));
        // 修改秒
        System.out.println("plusSeconds : " + now.plusSeconds(11));
        System.out.println("plusSeconds : " + now.plusSeconds(-31));
        // 修改纳秒
        System.out.println("plusNanos : " + now.plusNanos(53));
        System.out.println("plusNanos : " + now.plusNanos(-63));

Java日期工具类LocalDateTime_第5张图片

减少时间

虽然是减少时间,传参可为正数,也可为负数。传参为正数时减少,传参为负数时增加。

函数声明 描述
LocalDateTime minusYears(long years) 减少年
LocalDateTime minusMonths(long months) 减少月份
LocalDateTime minusWeeks(long weeks) 减少周
LocalDateTime minusDays(long days) 减少日
LocalDateTime minusHours(long hours) 减少小时
LocalDateTime minusMinutes(long minutes) 减少分钟
LocalDateTime minusSeconds(long seconds) 减少秒
LocalDateTime minusNanos(long nanos) 减少纳秒

减少其实也是调用的增加的方法
Java日期工具类LocalDateTime_第6张图片
以减少年为例

LocalDateTime now = LocalDateTime.now();
System.out.println("now:" + now);
// 减少年
System.out.println("minusYears : " + now.minusYears(2));
System.out.println("minusYears : " + now.minusYears(-5));

Java日期工具类LocalDateTime_第7张图片

替换时间

函数声明 描述
LocalDateTime withYear(int year) 替换年(-999999999-999999999)
LocalDateTime withMonth(int month) 替换月份(1-12)
LocalDateTime withDayOfMonth(int dayOfMonth) 替换为本月中的第几天(1-31)
LocalDateTime withDayOfYear(int dayOfYear) 替换为本年中的第几天(1-366)
LocalDateTime withHour(int hour) 替换小时(0-23)
LocalDateTime withMinute(int minute) 替换分钟(0-59)
LocalDateTime withSecond(int second) 替换秒(0-59)
LocalDateTime withNano(int nanoOfSecond) 替换纳秒(0-999999999)
LocalDateTime now = LocalDateTime.now();
System.out.println("now:" + now);
// 替换年
System.out.println("withYear : " + now.withYear(1996));
// 替换月
System.out.println("withMonth : " + now.withMonth(5));
// 替换日
System.out.println("withDayOfMonth : " + now.withDayOfMonth(5));
System.out.println("withDayOfYear : " + now.withDayOfYear(5));
// 替换时
System.out.println("withHour : " + now.withHour(5));
// 替换分
System.out.println("withMinute : " + now.withMinute(5));
// 替换秒
System.out.println("withSecond : " + now.withSecond(5));
// 替换纳秒
System.out.println("withNano : " + now.withNano(5));

Java日期工具类LocalDateTime_第8张图片

日期比较

函数声明 描述
boolean isEqual(ChronoLocalDateTime other) 判断日期时间是否相等
boolean isAfter(ChronoLocalDateTime other) 检查是否在指定日期时间之前
boolean isBefore(ChronoLocalDateTime other) 检查是否在指定日期时间之后
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time1 = LocalDateTime.of(1999, 12, 5, 10, 12, 12);
LocalDateTime time2 = LocalDateTime.of(1999, 12, 6, 10, 12, 12);
String timeStr1 = time1.format(formatter);
String timeStr2 = time2.format(formatter);
System.out.println("time1 : " + timeStr1);
System.out.println("time2 : " + timeStr2);
System.out.println(timeStr1 + " = " + timeStr2 + " : " + time1.isEqual(time2));
System.out.println(timeStr1 + " > " + timeStr2 + " : " + time1.isAfter(time2));
System.out.println(timeStr1 + " < " + timeStr2 + " : " + time1.isBefore(time2));

Java日期工具类LocalDateTime_第9张图片
Java8新特性日期工具类的梳理到此结束,欢迎大家补充说明。

你可能感兴趣的:(Java,java,LocalDateTime,Java8,日期,工具类)