当前位置:  首页>> 技术小册>> Java语言基础9-常用API和常见算法

  • LocalDate 表示本地日期,LocalTime 表示本地时间,而 LocalDateTIme 表示本地日期时间。
  • Instant 表示瞬间(本地日期时间),精确到纳秒。
    LocalDateTIme 和 Instant 的区别:
  • Instant 是带时区的(以UTC为准),用来替换以前的 Date 。
  • LocalDateTIme 是不带时区(以本地时区为准)的,用来替换以前的 Calendar。
  • 以 LocalDateTime 为例:
  • 获取对象:
    • ① 获取当前日期时间:
  1. public static LocalDateTime now() {}
  2. public static LocalDateTime now(ZoneId zone) {}

② 根据指定日期时间创建对象:

  1. public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, int minute) {}
  • 获取日期时间中的每个值:
    • 获取年份:
  1. public int getYear() {}

获取月份(1~12):

  1. public int getMonthValue() {}

获取月份的第几天(1~31):

  1. public int getDayOfMonth() {}

获取一年中的第几天(1~366):

  1. public int getDayOfYear() {}

获取星期:

  1. public DayOfWeek getDayOfWeek() {}

获取小时:

  1. public int getHour() {}

获取分钟:

  1. public int getMinute() {}

获取秒:

  1. public int getMinute() {}

获取纳秒:

  1. public int getSecond() {}

转换为 LocalDate :

  1. public LocalDate toLocalDate() {}

转换为 LocalTime :

  1. public LocalTime toLocalTime()

修改年:

  1. public LocalDateTime withYear(int year) {}

修改月:

  1. public LocalDateTime withMonth(int month) {}

修改日期(一个月中的第几天):

  1. public LocalDateTime withDayOfMonth(int dayOfMonth) {}

修改日期(一年中的第几天):

  1. public LocalDateTime withDayOfYear(int dayOfYear) {}

修改小时:

  1. public LocalDateTime withHour(int hour) {}

修改分钟:

  1. public LocalDateTime withMinute(int minute) {}

修改秒:

  1. public LocalDateTime withSecond(int second) {}

增加年或减少年:

  1. public LocalDateTime plusYears(long years) {}

增加或减少月:

  1. public LocalDateTime plusMonths(long months) {}

增加或减少日:

  1. public LocalDateTime plusDays(long days) {}

增加或减少小时:

  1. public LocalDateTime plusHours(long hours) {}

增加或减少分钟:

  1. public LocalDateTime plusMinutes(long minutes) {}

增加或减少秒:

  1. public LocalDateTime plusSeconds(long seconds) {}

增加或减少周:

  1. public LocalDateTime plusWeeks(long weeks) {}

减少或添加年:

  1. public LocalDateTime minusYears(long years) {}

减少或添加月:

  1. public LocalDateTime minusMonths(long months) {}

减少或添加日:

  1. public LocalDateTime minusDays(long days) {}

减少或添加小时:

  1. public LocalDateTime minusHours(long hours) {}

减少或添加分钟:

  1. public LocalDateTime minusMinutes(long minutes) {}

减少或添加秒:

  1. public LocalDateTime minusSeconds(long seconds) {}

减少或添加周:

  1. public LocalDateTime minusWeeks(long weeks) {}

是否在另一个时间之前:

  1. public boolean isBefore(ChronoLocalDateTime<?> other) {}

两个时间是否相等:

  1. public boolean isEqual(ChronoLocalDateTime<?> other) {}

是否在另一个时间之后:

  1. public boolean isAfter(ChronoLocalDateTime<?> other) {}

示例:

  1. package com.github.date.jdk8.demo1;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. import java.time.LocalTime;
  5. /**
  6. * @author maxiaoke.com
  7. * @version 1.0
  8. *
  9. */
  10. public class Test {
  11. public static void main(String[] args) {
  12. LocalDate now = LocalDate.now();
  13. System.out.println("now = " + now); // now = 2021-09-26
  14. LocalTime now1 = LocalTime.now();
  15. System.out.println("now1 = " + now1); // now1 = 20:02:32.659
  16. LocalDateTime now2 = LocalDateTime.now();
  17. System.out.println("now2 = " + now2); // now2 = 2021-09-26T20:02:32.660
  18. }
  19. }

示例:

  1. package com.github.date.jdk8.demo9;
  2. import java.time.Instant;
  3. import java.time.LocalDateTime;
  4. /**
  5. * @author maxiaoke.com
  6. * @version 1.0
  7. *
  8. */
  9. public class Test {
  10. public static void main(String[] args) {
  11. Instant now = Instant.now();
  12. System.out.println("now = " + now); // now = 2021-09-27T01:54:39.351Z
  13. LocalDateTime now1 = LocalDateTime.now();
  14. System.out.println("now1 = " + now1); // now1 = 2021-09-27T09:54:39.401
  15. }
  16. }

示例:

  1. package com.github.date.jdk8.demo3;
  2. import java.time.LocalDateTime;
  3. /**
  4. * @author maxiaoke.com
  5. * @version 1.0
  6. *
  7. */
  8. public class Test {
  9. public static void main(String[] args) {
  10. LocalDateTime of = LocalDateTime.of(2021, 11, 11, 11, 11, 11);
  11. System.out.println("of = " + of); // of = 2021-11-11T11:11:11
  12. }
  13. }

示例:

  1. package com.github.date.jdk8.demo4;
  2. import java.time.DayOfWeek;
  3. import java.time.LocalDateTime;
  4. /**
  5. * @author maxiaoke.com
  6. * @version 1.0
  7. *
  8. */
  9. public class Test {
  10. public static void main(String[] args) {
  11. LocalDateTime now = LocalDateTime.now();
  12. int year = now.getYear();
  13. System.out.println("获取年份:" + year);
  14. int monthValue = now.getMonthValue();
  15. System.out.println("获取月份:" + monthValue);
  16. int dayOfMonth = now.getDayOfMonth();
  17. System.out.println("获取天数:" + dayOfMonth);
  18. int dayOfYear = now.getDayOfYear();
  19. System.out.println("获取一年中的第" + dayOfYear + "天");
  20. DayOfWeek dayOfWeek = now.getDayOfWeek();
  21. System.out.println("获取星期" + dayOfWeek.getValue());
  22. int hour = now.getHour();
  23. System.out.println("获取小时:" + hour);
  24. int minute = now.getMinute();
  25. System.out.println("获取分钟:" + minute);
  26. int second = now.getSecond();
  27. System.out.println("获取秒:" + second);
  28. int nano = now.getNano();
  29. System.out.println("获取纳秒:" + nano);
  30. }
  31. }

示例:

  1. package com.github.date.jdk8.demo5;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. import java.time.LocalTime;
  5. /**
  6. * @author maxiaoke.com
  7. * @version 1.0
  8. *
  9. */
  10. public class Test {
  11. public static void main(String[] args) {
  12. LocalDateTime now = LocalDateTime.now();
  13. // 转换为LocalDate
  14. LocalDate localDate = now.toLocalDate();
  15. System.out.println("localDate = " + localDate);
  16. // 转换为LocalTime
  17. LocalTime localTime = now.toLocalTime();
  18. System.out.println("localTime = " + localTime);
  19. }
  20. }

示例:

  1. package com.github.date.jdk8.demo9;
  2. import java.time.LocalDateTime;
  3. /**
  4. * @author maxiaoke.com
  5. * @version 1.0
  6. *
  7. */
  8. public class Test {
  9. public static void main(String[] args) {
  10. LocalDateTime now = LocalDateTime.now();
  11. System.out.println("now = " + now); // now = 2021-09-27T08:41:04.197
  12. LocalDateTime localDateTime = now.withYear(2022);
  13. System.out.println("修改年 = " + localDateTime); // 修改年 = 2022-09-27T08:41:04.197
  14. LocalDateTime localDateTime1 = now.withMonth(10);
  15. System.out.println("修改月 = " + localDateTime1); // 修改月 = 2021-10-27T08:41:04.197
  16. LocalDateTime localDateTime2 = now.withDayOfMonth(28);
  17. System.out.println("修改日期(一个月中的第几天) = " + localDateTime2); // 修改日期(一个月中的第几天) = 2021-09-28T08:41:04.197
  18. LocalDateTime localDateTime3 = now.withDayOfYear(15);
  19. System.out.println("修改日期(一年中的第几天) = " + localDateTime3); // 修改日期(一年中的第几天) = 2021-01-15T08:41:04.197
  20. LocalDateTime localDateTime4 = now.withHour(10);
  21. System.out.println("修改小时 = " + localDateTime4); // 修改小时 = 2021-09-27T10:41:04.197
  22. LocalDateTime localDateTime5 = now.withMinute(15);
  23. System.out.println("修改分钟 = " + localDateTime5); // 修改分钟 = 2021-09-27T08:15:04.197
  24. LocalDateTime localDateTime6 = now.withSecond(10);
  25. System.out.println("修改秒 = " + localDateTime6); // 修改秒 = 2021-09-27T08:41:10.197
  26. }
  27. }

示例:

  1. package com.github.date.jdk8.demo7;
  2. import java.time.LocalDateTime;
  3. /**
  4. * @author maxiaoke.com
  5. * @version 1.0
  6. *
  7. */
  8. public class Test {
  9. public static void main(String[] args) {
  10. LocalDateTime now = LocalDateTime.now();
  11. System.out.println("now = " + now); // now = 2021-09-27T09:30:21.527
  12. LocalDateTime localDateTime = now.plusYears(1);
  13. System.out.println("localDateTime = " + localDateTime); // localDateTime = 2022-09-27T09:30:21.527
  14. LocalDateTime localDateTime1 = now.plusYears(-1);
  15. System.out.println("localDateTime1 = " + localDateTime1); // localDateTime1 = 2020-09-27T09:30:21.527
  16. LocalDateTime localDateTime2 = now.plusMonths(1);
  17. System.out.println("localDateTime2 = " + localDateTime2); // localDateTime2 = 2021-10-27T09:30:21.527
  18. LocalDateTime localDateTime3 = now.plusDays(1);
  19. System.out.println("localDateTime3 = " + localDateTime3); // localDateTime3 = 2021-09-28T09:30:21.527
  20. LocalDateTime localDateTime4 = now.plusHours(1);
  21. System.out.println("localDateTime4 = " + localDateTime4); // localDateTime4 = 2021-09-27T10:30:21.527
  22. LocalDateTime localDateTime5 = now.plusMinutes(1);
  23. System.out.println("localDateTime5 = " + localDateTime5); // localDateTime5 = 2021-09-27T09:31:21.527
  24. LocalDateTime localDateTime6 = now.plusSeconds(1);
  25. System.out.println("localDateTime6 = " + localDateTime6); // localDateTime6 = 2021-09-27T09:30:22.527
  26. LocalDateTime localDateTime7 = now.plusWeeks(1);
  27. System.out.println("localDateTime7 = " + localDateTime7); // localDateTime7 = 2021-10-04T09:30:21.527
  28. }
  29. }

示例:

  1. package com.github.date.jdk8.demo8;
  2. import java.time.LocalDateTime;
  3. /**
  4. * @author maxiaoke.com
  5. * @version 1.0
  6. *
  7. */
  8. public class Test {
  9. public static void main(String[] args) {
  10. LocalDateTime now = LocalDateTime.now();
  11. System.out.println("now = " + now); // now = 2021-09-27T09:39:01.406
  12. LocalDateTime localDateTime = now.minusYears(1);
  13. System.out.println("localDateTime = " + localDateTime); // localDateTime = 2020-09-27T09:39:01.406
  14. LocalDateTime localDateTime1 = now.minusMonths(1);
  15. System.out.println("localDateTime1 = " + localDateTime1); // localDateTime1 = 2021-08-27T09:39:01.406
  16. LocalDateTime localDateTime2 = now.minusDays(1);
  17. System.out.println("localDateTime2 = " + localDateTime2); // localDateTime2 = 2021-09-26T09:39:01.406
  18. LocalDateTime localDateTime3 = now.minusHours(1);
  19. System.out.println("localDateTime3 = " + localDateTime3); // localDateTime3 = 2021-09-27T08:39:01.406
  20. LocalDateTime localDateTime4 = now.minusMinutes(1);
  21. System.out.println("localDateTime4 = " + localDateTime4); // localDateTime4 = 2021-09-27T09:38:01.406
  22. LocalDateTime localDateTime5 = now.minusSeconds(1);
  23. System.out.println("localDateTime5 = " + localDateTime5); // localDateTime5 = 2021-09-27T09:39:00.406
  24. LocalDateTime localDateTime6 = now.minusWeeks(1);
  25. System.out.println("localDateTime6 = " + localDateTime6); // localDateTime6 = 2021-09-20T09:39:01.406
  26. }
  27. }

示例:

  1. package com.github.date.jdk8.demo10;
  2. import java.time.LocalDateTime;
  3. /**
  4. * @author maxiaoke.com
  5. * @version 1.0
  6. *
  7. */
  8. public class Test {
  9. public static void main(String[] args) {
  10. LocalDateTime now = LocalDateTime.now();
  11. LocalDateTime localDateTime = LocalDateTime.now().plusHours(1);
  12. System.out.println(now.isBefore(localDateTime)); // true
  13. System.out.println(now.isAfter(localDateTime)); // false
  14. System.out.println(now.isEqual(localDateTime)); // false
  15. }
  16. }

该分类下的相关小册推荐: