Java8中处理日期和时间的常用API

2023-10-31

场景

java8中引入了一个新包java.time,包含了多数会用到的核心类。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi 
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、获取今天日期

        //获取今天日期
        System.out.println("今天的日期是:"+ LocalDate.now());//今天的日期是:2022-10-17

2、获取年月日信息

        //获取年月日信息
        System.out.println("获取年月日信息是:"+LocalDate.now().getYear()+"年"+LocalDate.now().getMonthValue()+"月"+LocalDate.now().getDayOfMonth()+"日");//获取年月日信息是:2022年10月17日

3、创建特定日期

        //创建特定日期
        //通过静态方法now可以创建当天日期,还可以调用LocalDate.of()创建任意日期,该方法需要传入年月日作为参数,返回对应的LocalDate实例
        LocalDate specificLocalDate = LocalDate.of(2022, 10, 18);
        System.out.println("创建特定日期是:"+specificLocalDate);//创建特定日期是:2022-10-18

4、判断两个日期是否相等

        //判断两个日期是否相等
        System.out.println(LocalDate.now().equals(LocalDate.of(2022,10,18)));//false
        System.out.println(LocalDate.now().equals(LocalDate.now()));//true

5、判断是否到周期性的某天

        //判断是否到周期性日期的某天(生日、年检...),每年的固定时间
        System.out.println(MonthDay.of(LocalDate.now().getMonth(),LocalDate.now().getDayOfMonth()).equals(MonthDay.of(10,17)));//true
        System.out.println(MonthDay.of(LocalDate.now().getMonth(),LocalDate.now().getDayOfMonth()).equals(MonthDay.of(10,18)));//false

6、获取当前时间

        //获取当前时间
        System.out.println("当前时间为:"+ LocalTime.now());//当前时间为:17:14:25.713

7、获取当前时间往后的指定时间

        //获取当前时间往后的指定时间
        System.out.println("当前时间为:"+LocalTime.now()+"当前时间往后5个小时为"+LocalTime.now().plusHours(5));//当前时间为:17:17:11.876当前时间往后5个小时为22:17:11.876
        System.out.println("当前时间为:"+LocalTime.now()+"当前时间往后5分钟为"+LocalTime.now().plusMinutes(5));//当前时间为:17:17:11.876当前时间往后5分钟为17:22:11.876
        System.out.println("当前时间为:"+LocalTime.now()+"当前时间往后5秒钟为"+LocalTime.now().plusSeconds(5));//当前时间为:17:17:11.876当前时间往后5秒钟为17:17:16.876

8、计算指定日期后的日期

        //计算指定日期后的日期
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一周后为:"+LocalDate.now().plus(1, ChronoUnit.WEEKS));//当前日期为:2022-10-17当前日期一周后为:2022-10-24
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一天后为:"+LocalDate.now().plus(1, ChronoUnit.DAYS));//当前日期为:2022-10-17当前日期一天后为:2022-10-18
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一月后为:"+LocalDate.now().plus(1, ChronoUnit.MONTHS));//当前日期为:2022-10-17当前日期一月后为:2022-11-17
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一年后为:"+LocalDate.now().plus(1, ChronoUnit.YEARS));//当前日期为:2022-10-17当前日期一年后为:2023-10-17

9、计算指定日期前的日期

        //计算指定日期前的日期
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一周前为:"+LocalDate.now().minus(1, ChronoUnit.WEEKS));//当前日期为:2022-10-17当前日期一周前为:2022-10-10
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一天前为:"+LocalDate.now().minus(1, ChronoUnit.DAYS));//当前日期为:2022-10-17当前日期一天前为:2022-10-16
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一月前为:"+LocalDate.now().minus(1, ChronoUnit.MONTHS));//当前日期为:2022-10-17当前日期一月前为:2022-09-17
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一年前为:"+LocalDate.now().minus(1, ChronoUnit.YEARS));//当前日期为:2022-10-17当前日期一年前为:2021-10-17

10、获取当前时间戳

        //获取当前时间戳
        //systemUTC 根据您的系统时钟返回当前时间并设置为UTC
        System.out.println("systemUTC当前时间戳为:"+ Clock.systemUTC().millis());//systemUTC当前时间戳为:1666005316223
        //根据系统时钟区返回时间
        System.out.println("systemDefaultZone当前时间戳为:"+ Clock.systemDefaultZone().millis());//systemDefaultZone当前时间戳为:1666005316223
        //获取当前的时间戳
        System.out.println("当前时间戳为:"+Instant.now().toEpochMilli());//当前时间戳为:1666005316223

11、判断日期是否早于某一日期

        //判断日期是是否早于某一日期
        System.out.println("当前日期:"+LocalDate.now()+"是否早于2022-10-18:"+LocalDate.now().isBefore(LocalDate.of(2022,10,18)));//当前日期:2022-10-17是否早于2022-10-18:true
        System.out.println("当前日期:"+LocalDate.now()+"是否晚于2022-10-18:"+LocalDate.now().isAfter(LocalDate.of(2022,10,18)));//当前日期:2022-10-17是否晚于2022-10-18:false

12、计算是否为闰年

        //计算是否为闰年
        System.out.println("今年是否为闰年:"+ LocalDate.now().isLeapYear());//今年是否为闰年:false

13、计算两个日期之间单独的相差数

        //计算两个日期之间单独的相差数
        //注意Period的between计算的两个日期之间的间隔,得到的为分别的年月日,而不是一共多少年、多少月、多少日
        Period between = Period.between(LocalDate.now(), LocalDate.of(2033, 12, 30));
        System.out.println("当前距离2033-12-30相差"+between.getYears()+"年"+between.getMonths()+"月"+between.getDays()+"日");//当前距离2033-12-30相差11年2月13日

14、计算两个日期之间总的相差数

        //获取总的相差间隔
        System.out.println("当前距离2033-12-30总共相差天数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.DAYS));//当前距离2033-12-30总共相差天数:4092
        System.out.println("当前距离2033-12-30总共相差周数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.WEEKS));//当前距离2033-12-30总共相差周数:584
        System.out.println("当前距离2033-12-30总共相差月数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.MONTHS));//当前距离2033-12-30总共相差月数:134
        System.out.println("当前距离2033-12-30总共相差年数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.YEARS));//当前距离2033-12-30总共相差年数:11

15、字符串与日期类型互相转换

        //格式化解析日期字符串
        System.out.println("格式化20221017后的日期为:"+LocalDate.parse("20221017", DateTimeFormatter.BASIC_ISO_DATE));//格式化20221017后的日期为:2022-10-17
        //字符串与日期类型转换
        System.out.println("日期转换为字符串为:"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")));//日期转换为字符串为:2022/10/17 19:22:42
        System.out.println("字符串转换为日期:"+LocalDate.parse("2022/12/17 19:22:42",DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")));//字符串转换为日期:2022-12-17

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java8中处理日期和时间的常用API 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • python dataframe索引转成列_Pandas之DataFrame对象的列和索引之间的转化

    约定 import pandas as pd DataFrame对象的列和索引之间的转化 我们常常需要将DataFrame对象中的某列或某几列作为索引 或者将索引转化为对象的列 pandas提供了set index reset index
  • vue 项目中引用cdn上的静态js文件

    vue 项目中引用cdn上的静态js文件 需求 一份静态配置文件放在cdn中 文件暴露出数据列表和公共方法 读取文件的配置数据和公共方法 初始化Action列表 const cdnUrl https cdn xxx js libs vm a
  • Bat延时退出窗口

    timeout t 5
  • 【Error】ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

    参考文章 如何解决version GLIBCXX 3 4 29 not found的问题 1 问题 在 wsl ubuntu20 04 运行 yolov8 时 出现以下错误 ImportError lib x86 64 linux gnu
  • san.js源码解读之工具(util)篇——each函数

    一 迭代器模式 在开始解析源码之前 先来看一下 javascript 设计模式 迭代器模式 如果没有接触过该模式的小伙伴可能一脸疑惑 表示没听说过 但是这个迭代器模式 可能你已经用了很久了只是不知道它的名字罢了 比如 jquery中的 ea
  • 个位数统计 C语言

    1021 个位数统计 15 分 给定一个 k 位整数 N dk 1 10k 1 d1 101 d0 0 di 9 i 0 k 1 dk 1 gt 0 请编写程序统计每种不同的个位数字出现的次数 例如 给定 N 100311 则有 2 个 0
  • python萤火虫算法_萤火虫算法-python实现

    1 importnumpy as np2 from FAIndividual importFAIndividual3 importrandom4 importcopy5 importmatplotlib pyplot as plt6 7 8
  • FileNotFoundError: [Errno 2] No such file or directory: 'template/

    1 在运行generate list py时一直出现找不到templates header html和templates footer html的错误提示 2 后来才发现是路径问题 由于webapp是另外新建的目录 所以对yate py中w
  • Opencv使用cascade方法训练自己的LBP特征分类器的全过程

    前言 刚刚才把自己训练的分类器整出来 现在来理一下整个过程 从制作正负样本开始一直到最后产生自己的分类器 xml文件 因为毕设的要求 可能要用Opencv训练识别模型 用以识别道路积水 Opencv上自带的只有一些识别脸 眼睛等模型 所以要
  • 逻辑表达式三种化简方法

    逻辑表达式三种化简方法 目录 公式化简法 卡诺图化简法 机器化简法 一 公式法化简 是利用逻辑代数的基本公式 对函数进行消项 消因子 常用方法有 并项法 利用公式AB AB A 将两个与项合并为一个 消去其中的一个变量 吸收法 利用公式A
  • Unity WebGL Calls Rust Wasm

    Unity WebGL Calls Rust Wasm Jin Qing s Column May 2023 Reference https zenn dev ruccho articles 261136f7bdb003 In this a
  • 【通信原理】数字基带传输的线路码型

    数字基带传输的线路码型 简单介绍数字基带传输的线路码型的信号波形的特点 以及生成方法 注意观察频谱 文末附Matlab代码 以下包括双极性NRZ 单极型NRZ 双极型RZ 单极型RZ 差分码 曼切斯特码 数字双相码 密勒码 CMI码 AMI
  • STM32+二氧化碳传感器(FS00301)

    配置串口4 uart c u8 USART4 RX BUF USART REC LEN 接收缓冲 最大USART REC LEN个字节 u16 USART4 RX STA 0 接收状态标记 void uart4 init u32 bound
  • Istio Java SDK API - 资源访问-VirtualService/Gateway/DestinationRule/ServiceEntry

    环境 参考上一篇文章 Java如何连接Istio 参考上一篇文章 访问Isito资源 VirtualService Gateway DestinationRule ServiceEntry 项目源码 package com you micr
  • QML控件类型:Tumbler

    一 描述 Tumbler 用于通过旋转轮子来选择一个值 Tumbler model 10 API 类似于 ListView 和 PathView 等视图的 API 可以设置模型和委托 并且 count 和 currentItem 属性提供对
  • html登录页面设计

    html登录页面设计实训 html和CSS概述 1 html HTML 是一种标记语言 用于定义网页的结构和内容 包括段落 标题 列表 链接等等 它使用标签来标识不同的内容 并且这些标签可以用于嵌套 2 CSS CSS 是一种样式表语言 用
  • R语言中 attach()与detach(),及with()的使用

    attach what pos 2L name deparse substitute what backtick FALSE warn conflicts TRUE 1 attach 是对what添加路径索引 避免重复输入what名称 参数
  • 数据分析利器Python——列表、元组和字典

    文章目录 目录 文章目录 前言 一 列表和元组 1 创建列表和元组 2 列表和元组的通用用法 2 1 通过索引使用元素 2 2 子序列 2 3 加法 2 4 乘法 2 5 in运算符 2 6 长度 最大值和最小值 2 7 序列封包和序列解包
  • hdu1253 胜利大逃亡(三维bfs索搜)

    http acm hdu edu cn showproblem php pid 1253 第一次做做三维的 思路跟二维的没有区别 这道题目第一次出现Memory Limit Exceeded 这种问题 找了很长时间才发现应该是先判断在存入
  • Java8中处理日期和时间的常用API

    场景 java8中引入了一个新包java time 包含了多数会用到的核心类 注 博客 https blog csdn net badao liumang qizhi 关注公众号 霸道的程序猿 获取编程相关电子书 教程推送与免费下载 实现