iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java8的LocalDateTime怎么使用
  • 343
分享到

Java8的LocalDateTime怎么使用

2023-07-05 22:07:44 343人浏览 薄情痞子
摘要

这篇文章主要讲解了“Java8的LocalDateTime怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java8的LocalDateTime怎么使用”吧!前言LocalDateTi

这篇文章主要讲解了“Java8的LocalDateTime怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java8的LocalDateTime怎么使用”吧!

前言

LocalDateTime、LocalDate、LocalTime 是 Java8 全新的日期框架,加强了对时间的管理,有很多特别好用的时间运算方法,而且是线程安全的,较之前的 util.Date 以及 Calander 使用起来更加的方便直观,下面介绍几种常见的日期对象用法。

  • LocalDateTime:日期加时间的日期对象,包含年月日时分秒

  • LocalDate:日期类,包含年月日

  • LocalTime:时间类,包含时分秒

LocalDateTime

获取当前时间

@Testpublic void test() {    LocalDate localDate = LocalDate.now();    LocalTime localTime = LocalTime.now();    LocalDateTime localDateTime = LocalDateTime.now();    System.out.println("localDate:"+localDate);//2023-02-22    System.out.println("localTime:"+localTime);//17:25:36.590    System.out.println("localDateTime:"+localDateTime);//2023-02-22T17:25:36.590}

输出结果:

Java8的LocalDateTime怎么使用

可以看到不用做格式转换就可以得到可读性很高的日期格式。注意:ISO 8601规定的日期和时间分隔符是T。标准格式如下:

  • 日期:yyyy-MM-dd

  • 时间:HH:mm:ss

  • 带毫秒的时间:HH:mm:ss.SSS

  • 日期和时间:yyyy-MM-dd'T'HH:mm:ss

  • 带毫秒的日期和时间:yyyy-MM-dd'T'HH:mm:ss.SSS

获取当前时间的年月日时分秒

@Testpublic void test() {    LocalDateTime localDateTime = LocalDateTime.now(); // 获取当前时间    int year = localDateTime.getYear(); // 获取年份 2023    int month = localDateTime.getMonthValue(); // 获取月份 2    int day = localDateTime.getDayOfMonth(); // 获取月中的天数 22    int hour = localDateTime.getHour(); // 获取当前的小时 17    int minute = localDateTime.getMinute(); // 获取当前分钟 33    int second = localDateTime.getSecond(); // 获取当前秒数 22    System.out.println(year);    System.out.println(month);    System.out.println(day);    System.out.println(hour);    System.out.println(minute);    System.out.println(second);}

输出结果:

Java8的LocalDateTime怎么使用

给LocalDateTime赋值

在static目录中新建kaptcha.html页面,代码如下:

public void test() {    LocalDateTime of = LocalDateTime.of(2023,2,22,22,22,22);    System.out.println(of); // 输出2023-02-22T22:22:22}

时间与字符串相互转换

@Testpublic void test() {    // 将字符串转换为指定格式的时间(格式要和给定的格式一致,不然会报错)    LocalDateTime parse = LocalDateTime.parse("2023-02-22 22:22:22", DateTimeFORMatter.ofPattern("yyyy-MM-dd HH:mm:ss"));    LocalDateTime parse1 = LocalDateTime.parse("2023 02 22 22:22:22", DateTimeFormatter.ofPattern("yyyy MM dd HH:mm:ss"));    LocalDateTime parse2 = LocalDateTime.parse("2023.02.22 22:22:22", DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss"));    System.out.println(parse); // 输出2023-02-22T22:22:22    System.out.println(parse1); // 输出2023-02-22T22:22:22    System.out.println(parse2); // 输出2023-02-22T22:22:22    // 时间转字符串    LocalDateTime now = LocalDateTime.now();    DateTimeFormatter of = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");    String dateTime = now.format(of);    System.out.println(dateTime); // 输出 2023-02-22 17:56:18}

输出结果:

Java8的LocalDateTime怎么使用

时间运算:加上对应时间

LocalDateTime提供了对日期和时间进行加减的非常简单的链式调用,让时间运算变得非常简单:

@Testpublic void test() {    LocalDateTime now = LocalDateTime.now(); // 当前时间2023-02-22T18:00:19.352    LocalDateTime plusYears= now.plusYears(2); // 在当前时间加上2年2025-02-22T18:00:19.352    LocalDateTime plusMonths= now.plusMonths(2);// 在当前时间商加上2月2023-04-22T18:00:19.352    LocalDateTime plusDays= now.plusDays(2); // 在当前时间加上2天2023-02-24T18:00:19.352    LocalDateTime plusHours= now.plusHours(2); // 在当前时间加上2个小时2023-02-22T20:00:19.352    LocalDateTime plusMinutes= now.plusMinutes(30); // 在当前时间加上30分钟2023-02-22T18:30:19.352    LocalDateTime plusSeconds = now.plusSeconds(30); // 在当前时间加上30秒2023-02-22T18:00:49.352    System.out.println(now);    System.out.println(plusYears);    System.out.println(plusMonths);    System.out.println(plusDays);    System.out.println(plusHours);    System.out.println(plusMinutes);    System.out.println(plusSeconds);}

输出结果:

Java8的LocalDateTime怎么使用

时间运算:减去对应时间

@Testpublic void test() {    LocalDateTime now = LocalDateTime.now(); // 当前时间    LocalDateTime minusYears = now.minusYears(2); // 在当前时间减上2年    LocalDateTime minusMonths = now.minusMonths(2);// 在当前时间商减上2月    LocalDateTime minusDays = now.minusDays(2); // 在当前时间减上2天    LocalDateTime minusHours = now.minusHours(2); // 在当前时间减上2个小时    LocalDateTime minusMinutes = now.minusMinutes(30); // 在当前时间减上30分钟    LocalDateTime minusSeconds = now.minusSeconds(30); // 在当前时间减上30秒    System.out.println("now:" + now);    System.out.println("minusYears:" + minusYears);    System.out.println("minusMonths:" + minusMonths);    System.out.println("minusDays:" + minusDays);    System.out.println("minusHours:" + minusHours);    System.out.println("minusMinutes:" + minusMinutes);    System.out.println("minusSeconds:" + minusSeconds);}

输出结果:

Java8的LocalDateTime怎么使用

两个时间比较

@Testpublic void test() {    LocalDateTime now = LocalDateTime.now(); // 当前时间    LocalDateTime now1 = now.plusYears(5); // 在当前时间加上5年    //  给LocalDateTime 赋值    LocalDateTime of = LocalDateTime.of(2023,2,2,22,22,22);    LocalDateTime of1 = LocalDateTime.of(2023,8,5,1,1,1);    //两个时间作比较,第一个时间减去第二个时间(如果年份相同,比较月份,月份相同比较天数,以此类推)    int compareTo = now1.compareTo(now);    int compareTo1 = now.compareTo(now1);    int compareTo2 = now.compareTo(of);    int compareTo3 = now.compareTo(of1);    System.out.println(now);   // 输出 2023-02-22T20:19:44.112v    System.out.println(now1); // 输出 2028-02-22T20:19:44.112    System.out.println(of); // 输出 2023-02-02T22:22:22    System.out.println(of1); // 输出 2023-08-05T01:01:01    System.out.println(compareTo); // 输出 5    System.out.println(compareTo1); // 输出 -5    System.out.println(compareTo2); // 输出 20    System.out.println(compareTo3); // 输出 -6}

输出结果:

Java8的LocalDateTime怎么使用

利用Duration计算时间差

注意没有计算相差的年和秒值,对于要计算相差的秒数,可以利用计算毫秒来进行转换

@Testpublic void test() {    LocalDateTime now = LocalDateTime.now(); // 当前时间    //  给LocalDateTime 赋值    LocalDateTime of = LocalDateTime.of(2022,2,22,2,2,2);    Duration duration = Duration.between(of,now); // 后面减去前面    long toDays = Duration.between(of,now).toDays(); //相差的天数    long toHours = Duration.between(of,now).toHours();//相差的小时数    long toMinutes = Duration.between(of,now).toMinutes();//相差的分钟数    long toMillis = Duration.between(of,now).toMillis();//相差毫秒数    long toNanos = Duration.between(of,now).toNanos();//相差的纳秒数    System.out.println("toDays:"+ toDays); // 输出 toDays:365    System.out.println("toHours:"+ toHours); // 输出 toHours:8778    System.out.println("toMinutes:"+ toMinutes); // 输出 toMinutes:526732    System.out.println("toMillis:"+ toMillis); // 输出 toMillis:31603973840    System.out.println("toNanos:"+ toNanos); // 输出 toNanos:31603973840000000}

输出结果:

Java8的LocalDateTime怎么使用

改变当前时间的年月日时分秒

@Testpublic void test() {    LocalDateTime now = LocalDateTime.now(); // 当前时间    LocalDateTime withYear = now.withYear(2060); // 改变当前年份(变成2060年)    LocalDateTime withMonth = now.withMonth(12); // 改变当前月份(变成12月份)    LocalDateTime withDayOfMonth = now.withDayOfMonth(28); //改变当前天数(变成28日)    LocalDateTime withHour = now.withHour(23); // 改变当前小时数(变成23时)    LocalDateTime withMinute = now.withMinute(30); // 改变当前分钟(变成30分钟)    LocalDateTime withSecond = now.withSecond(23); // 改变当前小时数(变成23时)    LocalDateTime withDayOfYear = now.withDayOfYear(60); // 从一月一号开始加上60天    System.out.println(now);    System.out.println("withYear:"+ withYear);    System.out.println("withMonth:"+ withMonth);    System.out.println("withDayOfMonth:"+ withDayOfMonth);    System.out.println("withHour:"+ withHour);    System.out.println("withMinute:"+ withMinute);    System.out.println("withSecond:"+ withSecond);    System.out.println("withDayOfYear:"+ withDayOfYear);}

输出结果:

Java8的LocalDateTime怎么使用

自定义输出的格式

@Testpublic void test() {    // 自定义格式化:    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");    DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss");    System.out.println("自定义格式yyyy/MM/dd HH:mm:ss :"+dtf.format(LocalDateTime.now()));    System.out.println("自定义格式yyyy.MM.dd HH:mm:ss :"+dtf1.format(LocalDateTime.now()));    // 用自定义格式解析:    LocalDateTime dt2 = LocalDateTime.parse("2020/10/20 15:16:17", dtf);    System.out.println("格式解析:"+dt2);}

输出结果:

Java8的LocalDateTime怎么使用

LocalDateTime的with()方法

@Testpublic void test() {    // 本月第一天0:00时刻:    LocalDateTime firstDay = LocalDate.now().withDayOfMonth(1).atStartOfDay();    // 本月最后1天:    LocalDate lastDay = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());    // 下月第1天:    LocalDate nextMonthFirstDay = LocalDate.now().with(TemporalAdjusters.firstDayOfNextMonth());    // 本月第1个周一:    LocalDate firstWeekday = LocalDate.now().with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));}

两个日期前后的比较与判断

@Testpublic void test() {    //判断两个时间点的前后    LocalDateTime now = LocalDateTime.now();    LocalDateTime target = LocalDateTime.of(2022, 2, 22, 22, 22, 22);    boolean isBefore = now.isBefore(target);    System.out.println("now:"+now);    System.out.println("target:"+target);    System.out.println("isBefore:"+isBefore);    System.out.println(LocalDate.now().isBefore(LocalDate.of(2022, 2, 22)));    System.out.println(LocalTime.now().isAfter(LocalTime.parse("08:15:00")));}

输出结果:

Java8的LocalDateTime怎么使用

感谢各位的阅读,以上就是“Java8的LocalDateTime怎么使用”的内容了,经过本文的学习后,相信大家对Java8的LocalDateTime怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Java8的LocalDateTime怎么使用

本文链接: https://www.lsjlt.com/news/355619.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java8的LocalDateTime怎么使用
    这篇文章主要讲解了“Java8的LocalDateTime怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java8的LocalDateTime怎么使用”吧!前言LocalDateTi...
    99+
    2023-07-05
  • Java8日期类LocalDate、LocalTime、LocalDateTime使用详解
    一、Java8之前日期类所存在的问题 在Java8之前通常会使用Date结合 SimpleDateFormat、Calender来处理时间和日期的相关需求。 但是这些API也存在明显的缺点: 可读性...
    99+
    2023-09-07
    java 开发语言
  • 一文带你搞懂Java8的LocalDateTime
    目录前言LocalDateTime获取当前时间获取当前时间的年月日时分秒给LocalDateTime赋值时间与字符串相互转换时间运算:加上对应时间时间运算:减去对应时间两个时间比较利...
    99+
    2023-05-14
    Java8 LocalDateTime使用 Java8 LocalDateTime
  • Java8时间接口LocalDateTime详细用法
    目录一、新时间日期API常用、重要对象介绍二、JDK 8新增日期和时间的新类三、总结一、新时间日期API常用、重要对象介绍 ZoneId: 时区ID,用来确定Instant...
    99+
    2024-04-02
  • Java8中CompletableFuture怎么使用
    今天小编给大家分享一下Java8中CompletableFuture怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1...
    99+
    2023-06-29
  • Java8中Stream怎么使用
    今天小编给大家分享一下Java8中Stream怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、概述Java 8 是...
    99+
    2023-07-02
  • Java8中的CompletableFuture类怎么使用
    本篇内容主要讲解“Java8中的CompletableFuture类怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java8中的CompletableFuture类怎么使用”吧!Java...
    99+
    2023-07-06
  • Java8新特性怎么使用
    本篇内容介绍了“Java8新特性怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java语言新特性Lambda表达式Lambda表达式...
    99+
    2023-06-02
  • LocalDateTime在java中的使用方法
    这篇文章将为大家详细讲解有关LocalDateTime在java中的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种...
    99+
    2023-06-14
  • Java8 Collectors.toMap() 的使用
    目录 一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重 二、Duplicate key 异常1)异常重现:2)异常截图:3)异常说明:4...
    99+
    2023-09-12
    java jvm 面试
  • Java8 StreamAPI中的map()方法怎么使用
    今天小编给大家分享一下Java8 StreamAPI中的map()方法怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2023-07-05
  • java8异步调用该怎么使用
    这篇文章跟大家分析一下“java8异步调用该怎么使用”。内容详细易懂,对“java8异步调用该怎么使用”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“java8异步调用该怎么使用”...
    99+
    2023-06-29
  • java8中的Collectors.groupingBy怎么用
    这篇“java8中的Collectors.groupingBy怎么用”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“java8中的Collectors.groupingBy怎么用”,小编整理了以...
    99+
    2023-06-14
  • Java8中Function接口怎么使用
    这篇文章主要介绍了Java8中Function接口怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java8中Function接口怎么使用文章都会有所收获,下面我们一起来看看吧。Java 8 中 Func...
    99+
    2023-07-02
  • JAVA8 Stream流中的reduce()方法怎么使用
    这篇文章主要介绍“JAVA8 Stream流中的reduce()方法怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JAVA8 Stream流中的reduce()方法怎么使...
    99+
    2023-07-05
  • Java8新特性Stream流怎么使用
    本文小编为大家详细介绍“Java8新特性Stream流怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java8新特性Stream流怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Stream流的概...
    99+
    2023-07-02
  • 怎么使用Java8中接口的新特性
    这篇文章主要介绍“怎么使用Java8中接口的新特性”,在日常操作中,相信很多人在怎么使用Java8中接口的新特性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Java8中接口的新特性”的疑惑有所帮助!...
    99+
    2023-06-25
  • Optional怎么中Java8 项目中使用
    这篇文章给大家介绍Optional怎么中Java8 项目中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允...
    99+
    2023-06-06
  • Java8 Stream流式编程怎么使用
    这篇文章主要介绍了Java8 Stream流式编程怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java8 Stream流式编程怎么使用文章都会有所收获,下面我们一起来看看吧。一、S...
    99+
    2023-07-05
  • Java8排序stream.sorted()的使用
        在这个页面上我们将提供java 8 Stream sorted()示例。我们可以按照自然排序以及Comparator提供的排序对流进行...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作