Java 1.8 日期处理更方便 Time 包的LocalDateTime、LocalDate、ZonedDateTime 和Date

简介: 看到java 1.8有处理日期理方便的方法,从此可以告别以前那种获取日期的年、月、日的复杂写法这时记录一下,方便后面查询使用
    
    //获取当前日期,默认当前时区的
    LocalDateTime localDateTime = LocalDateTime.now();
    System.out.println(localDateTime);
    //按照固定格式转成String
    DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String dateTime = localDateTime.format(format);
    System.out.println(dateTime);
    //获取年、月、日、小时、分、秒都变成轻松、好记多了
    String dateGet = "Year : " + localDateTime.getYear() + ",month: " + localDateTime.getMonthValue() + 
            ",Day: " + localDateTime.getDayOfMonth() + " hour: " + localDateTime.getHour() +
            ",minute: " + localDateTime.getMinute() + ",second: " + localDateTime.getSecond();
    System.out.println(dateGet);
    //直接转LocalDate,没有时、分、秒
    LocalDate localDate1 = localDateTime.toLocalDate();
    System.out.println(localDate1);
    //LocalDate转String
    String dateformat = localDate1.format(DateTimeFormatter.ofPattern("yyyy/MM/dd"));
    System.out.println(dateformat);
    //LocalDateTime转成ZonedDateTime
    ZoneId zoneId = ZoneId.systemDefault();
    ZonedDateTime zoneDateTime = localDateTime.atZone(zoneId);
    //再转成 java.util.Date()
    Date ndate = Date.from(zoneDateTime.toInstant());
    System.out.println("change to date:");
    System.out.println(ndate);
    //直接获取当前LocalDate
    LocalDate localDate = LocalDate.now();
    System.out.println(localDate);
    
    //直接获取当前
    ZonedDateTime.now();
    Date nowDate = new Date();
    System.out.println(nowDate);
AI 代码解读
目录
打赏
0
0
0
0
8
分享
相关文章
Java 日期与时间处理:精准掌控时间流转
Java 8引入了全新的日期和时间API,解决了旧版`java.util.Date`和`Calendar`类设计不佳、操作繁琐的问题。新API包括`LocalDate`、`LocalTime`和`LocalDateTime`类,操作简洁直观,符合日常思维习惯。同时提供了`Period`和`Duration`处理时间间隔,以及`DateTimeFormatter`进行格式化输出。这些改进使开发者能更高效、准确地处理日期和时间,极大提升了开发效率与代码质量。 (239字符)
73 6
|
3月前
|
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
78 26
|
3月前
|
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
58 5
|
4月前
|
Java的日期类都是怎么用的
【10月更文挑战第1天】本文介绍了 Java 中处理日期和时间的三个主要类:`java.util.Date`、`java.util.Calendar` 和 `java.time` 包下的新 API。`Date` 类用于表示精确到毫秒的瞬间,可通过时间戳创建或获取当前日期;`Calendar` 抽象类提供丰富的日期操作方法,如获取年月日及时区转换;`java.time` 包中的 `LocalDate`、`LocalTime`、`LocalDateTime` 和 `ZonedDateTime` 等类则提供了更为现代和灵活的日期时间处理方式,支持时区和复杂的时间计算。
75 14
|
4月前
|
Java的Date类使用
Java的Date类使用
51 0
告别jodatime!拥抱Java8日期时间类LocalDate、LocalDateTime详解(上)
告别jodatime!拥抱Java8日期时间类LocalDate、LocalDateTime详解
244 0
告别jodatime!拥抱Java8日期时间类LocalDate、LocalDateTime详解(上)
告别jodatime!拥抱Java8日期时间类LocalDate、LocalDateTime详解(下)
告别jodatime!拥抱Java8日期时间类LocalDate、LocalDateTime详解
321 0
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
57 14
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
40 13
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等