我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java8的LocalDateTime怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java8的LocalDateTime怎么使用

这篇文章主要讲解了“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怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java8的LocalDateTime怎么使用

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

下载Word文档

猜你喜欢

Java8的LocalDateTime怎么使用

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

Java8中CompletableFuture怎么使用

今天小编给大家分享一下Java8中CompletableFuture怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1
2023-06-29

Java8中Stream怎么使用

今天小编给大家分享一下Java8中Stream怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、概述Java 8 是
2023-07-02

Java8中的CompletableFuture类怎么使用

本篇内容主要讲解“Java8中的CompletableFuture类怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java8中的CompletableFuture类怎么使用”吧!Java
2023-07-06

Java8新特性怎么使用

本篇内容介绍了“Java8新特性怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java语言新特性Lambda表达式Lambda表达式
2023-06-02

java8 DateTimeFormatter的使用

DateTimeFormatter是java8的新特性,是线程安全的。对时区的支持也比较好。 (推荐学习:java课程)DateTimeFormatter dateTimeFormatter = DateTimeFormatt
java8 DateTimeFormatter的使用
2015-05-20

Java8 StreamAPI中的map()方法怎么使用

今天小编给大家分享一下Java8 StreamAPI中的map()方法怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-07-05

LocalDateTime在java中的使用方法

这篇文章将为大家详细讲解有关LocalDateTime在java中的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种
2023-06-14

Java8中Function接口怎么使用

这篇文章主要介绍了Java8中Function接口怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java8中Function接口怎么使用文章都会有所收获,下面我们一起来看看吧。Java 8 中 Func
2023-07-02

java8异步调用该怎么使用

这篇文章跟大家分析一下“java8异步调用该怎么使用”。内容详细易懂,对“java8异步调用该怎么使用”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“java8异步调用该怎么使用”
2023-06-29

java8中的Collectors.groupingBy怎么用

这篇“java8中的Collectors.groupingBy怎么用”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“java8中的Collectors.groupingBy怎么用”,小编整理了以
2023-06-14

JAVA8 Stream流中的reduce()方法怎么使用

这篇文章主要介绍“JAVA8 Stream流中的reduce()方法怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JAVA8 Stream流中的reduce()方法怎么使用”文章能帮助大家解
2023-07-05

Java8 Stream流式编程怎么使用

这篇文章主要介绍了Java8 Stream流式编程怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java8 Stream流式编程怎么使用文章都会有所收获,下面我们一起来看看吧。一、Stream中间操作S
2023-07-05

Java8新特性Stream流怎么使用

本文小编为大家详细介绍“Java8新特性Stream流怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java8新特性Stream流怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Stream流的概
2023-07-02

怎么使用Java8中接口的新特性

这篇文章主要介绍“怎么使用Java8中接口的新特性”,在日常操作中,相信很多人在怎么使用Java8中接口的新特性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Java8中接口的新特性”的疑惑有所帮助!
2023-06-25

Optional怎么中Java8 项目中使用

这篇文章给大家介绍Optional怎么中Java8 项目中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允
2023-06-06

lambda表达式怎么在Java8中使用

lambda表达式怎么在Java8中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。lambda 表达式的语法lambda 表达式由参数,->,以及函数体三部分组成。其实函数
2023-05-31

怎么在Java8中使用Lambda表达式

怎么在Java8中使用Lambda表达式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. lambda表达式介绍lambda表达式是Java8提供的新特性之一,也可以称之为闭
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录