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
|
3月前
|
Eclipse 创建 Java 包
Eclipse 创建 Java 包
49 1
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
246 0
Java/Spring项目的包开头为什么是com?
|
4月前
|
Java的Date类使用
Java的Date类使用
51 0
滚雪球学Java(51):掌握Java Date类:用法、弊端与时间戳转换技巧,助你轻松处理日期时间
【6月更文挑战第5天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
115 0
Java中Date各种相关用法
Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码  Calendar time=Calendar.getInstance(); time.clear(); time.
1174 0
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
57 14
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
40 13