一、Date

  1. /**
  2. * 创建人:LYY
  3. * 创建时间:2022/5/1
  4. */
  5. public class DateDemo {
  6. public static void main(String[] args) {
  7. // 获取当前时间
  8. Date date = new Date();
  9. // 返回自1970年1月1日至当前日期的毫秒数
  10. long time = date.getTime();
  11. // sql包下的date类
  12. Date dateSql = new java.sql.Date(time);
  13. System.out.println(date);
  14. System.out.println(dateSql);
  15. }
  16. }

二、SimpleDateFormat

  1. /**
  2. * 创建人:LYY
  3. * 创建时间:2022/5/1
  4. */
  5. public class SimpleDateFormatTest {
  6. public static void main(String[] args) {
  7. StringBuffer sss = new StringBuffer("sss");
  8. // 指定日期格式
  9. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  10. // 将日期转换为字符串
  11. String format = simpleDateFormat.format(new Date());
  12. System.out.println("format = " + format);
  13. // 将字符串转换为日期
  14. try {
  15. Date parse = simpleDateFormat.parse(format);
  16. System.out.println(parse);
  17. } catch (ParseException e) {
  18. e.printStackTrace();
  19. }
  20. }
  21. }

三、LocalDate、LocalTime、LocalDateTime

  1. /**
  2. * 创建人:LYY
  3. * 创建时间:2022/5/3
  4. */
  5. public class LocalDateTimeTest {
  6. /**
  7. * LocalDateTime的常用方法
  8. */
  9. @Test
  10. public void getLocalDateTimeMethod() {
  11. LocalDateTime localDateTime = LocalDateTime.of(2022,05,04,13,32,55);
  12. // 获取当前年
  13. int year = localDateTime.getYear();
  14. System.out.println("year = " + year);
  15. // 获取当前天是当前年的第几天
  16. int dayOfYear = localDateTime.getDayOfYear();
  17. System.out.println("dayOfYear = " + dayOfYear);
  18. // 获取当前月
  19. Month month = localDateTime.getMonth();
  20. System.out.println("month = " + month);
  21. // 获取当前月
  22. int monthValue = localDateTime.getMonthValue();
  23. System.out.println("monthValue = " + monthValue);
  24. // 获取当前月的第几天
  25. int dayOfMonth = localDateTime.getDayOfMonth();
  26. System.out.println("dayOfMonth = " + dayOfMonth);
  27. // 获取当前星期
  28. DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
  29. System.out.println("dayOfWeek = " + dayOfWeek);
  30. // 修改时间 LocalDateTime中的修改都是with开头
  31. LocalDateTime localDateTime1 = localDateTime.withHour(16);
  32. System.out.println("localDateTime1 = " + localDateTime1);
  33. }
  34. /**
  35. * 获取指定时间
  36. */
  37. @Test
  38. public void setDateTime() {
  39. // 获取23点30分25秒
  40. LocalTime localTime = LocalTime.of(23, 30, 25);
  41. // 获取2022-05-01
  42. LocalDate localDate = LocalDate.of(2022, 05, 01);
  43. // 获取指定日期和时间 2022-05-05 14:25:30
  44. LocalDateTime localDateTime = LocalDateTime.of(2022, 05, 05, 14, 25, 30);
  45. System.out.println("localDate = " + localDate);
  46. System.out.println("localTime = " + localTime);
  47. System.out.println("localDateTime = " + localDateTime);
  48. }
  49. /**
  50. * 获取当前时间
  51. */
  52. @Test
  53. public void getDateTime() {
  54. // 获取当前日期
  55. LocalDate localDate = LocalDate.now();
  56. // 获取当前时间
  57. LocalTime localTime = LocalTime.now();
  58. // 获取当前日期+时间
  59. LocalDateTime localDateTime = LocalDateTime.now();
  60. System.out.println("localDate = " + localDate);
  61. System.out.println("localTime = " + localTime);
  62. System.out.println("localDateTime = " + localDateTime);
  63. }
  64. }

四、instant

五、DateTimeFormatter

  1. /**
  2. * 创建人:LYY
  3. * 创建时间:2022/5/3
  4. * @author LYY
  5. * LocalDateTime格式化
  6. */
  7. public class DateTimeFormatterTest {
  8. /**
  9. * 自定义格式转换日期
  10. */
  11. @Test
  12. public void customDateTimeFormatter() {
  13. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  14. // 将日期转换成指定格式字符串
  15. String format = dateTimeFormatter.format(LocalDateTime.now());
  16. System.out.println("format = " + format);
  17. // 字符串转换成日期
  18. TemporalAccessor parse = dateTimeFormatter.parse(format);
  19. System.out.println("parse = " + parse);
  20. }
  21. /**
  22. * DateTimeFormatter本地相关的格式化
  23. * FULL
  24. * LONG
  25. * MEDIUM
  26. * SHORT
  27. */
  28. @Test
  29. public void ofLocalDateTime() {
  30. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);
  31. String format = dateTimeFormatter.format(LocalDateTime.now());
  32. System.out.println("format = " + format);
  33. }
  34. /**
  35. * DateTimeFormatter预定义的标准格式
  36. */
  37. @Test
  38. public void defaultDateTimeFormatter() {
  39. // DateTimeFormatter类中预定义的标准格式 ISO_LOCAL_DATE_TIME
  40. DateTimeFormatter isoLocalDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
  41. String format = isoLocalDateTime.format(LocalDateTime.now());
  42. System.out.println("format = " + format);
  43. }
  44. }

六、其他Api

  1. Zoneld: 所有时区信息
  2. ZonedDateTime: 一个在ISO-8601日历系统时区的日期时间
  3. Clock: 使用时区提供对当前即时、日期和时间的访问的时钟
  4. Duration: 持续时间 用于计算两个”时间”间隔
  5. Period: 用于计算连两个”日期”间隔
  6. TemporalAdjuster: 时间校正器
  7. TemporalAdjusters: 上方类的工具类