Java-JDK8中的时间Api

2023-10-27

Java-JDK8中的时间Api(java.time)

在这里插入图片描述

1. 本地日期、本地时间、本地日期时间的使用:LocalDate / LocalTime / LocalDateTime

在这里插入图片描述

package com.lmw.time;

import org.junit.Test;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @author 
 * @version 1.0.0
 * @createTime 2022/5/17 15:55
 * @description
 */

public class Jdk8DateTimeTest {
    @Test
    public void test() {
        // now()
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate); // 获取当前日期
        LocalTime localTime = LocalTime.now();
        System.out.println(localTime); // 获取当前时间
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);// 获取当前日期时间

        // of() LocalDateTime使用频率较高,使所以使用LocalDateTime类举例,其他两个类中也有这些方法
        LocalDateTime time1 = LocalDateTime.of(2022, 5, 17, 12, 12, 13);
        System.out.println(time1); // 设置指定的年月日,时分秒

        // get()
        System.out.println(localDateTime.getYear()); // 获取年
        System.out.println(localDateTime.getMonth()); // 获取月
        System.out.println(localDateTime.getMinute()); // 获取分钟


        // 年 月 日的设置
        LocalDateTime localDateTime1 = localDateTime.withDayOfMonth(22);
        System.out.println(localDateTime);
        System.out.println(localDateTime1);
        LocalDateTime localDateTime2 = localDateTime.withHour(4);
        System.out.println(localDateTime2); // 设置 时

        LocalDateTime localDateTime3 = localDateTime.plusDays(3); //加3天
        System.out.println(localDateTime3);

        LocalDateTime localDateTime4 = localDateTime.minusDays(2); //减2天
        System.out.println(localDateTime4);

    }
}

2.Instant类的使用

在这里插入图片描述

package com.lmw.time;
import org.junit.Test;
import java.time.*;

/**
 * @author 
 * @version 1.0.0
 * @createTime 2022/5/17 15:55
 * @description
 */

public class Jdk8DateTimeTest {
    @Test
    public void test2() {
        // 获取本初子午线对应的标准时间
        Instant instant = Instant.now(); // 子午线时间
        System.out.println(instant);
        // 添加时间偏移量
        OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8)); // 加8小时 东八区时间
        System.out.println(offsetDateTime);

        // 获取对应的毫秒数
        long l = instant.toEpochMilli();
        System.out.println(l); //毫秒时间戳

        //通过给定毫秒数获取Instant实例
        Instant instant1 = Instant.ofEpochMilli(1652775900576L);
        System.out.println(instant1);
    }
}

3.DateTimeFormatter类的使用(开发中一般使用这个)

格式化或解析日期、时间

① 实例化方式:
预定义的标准格式。如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
本地化相关的格式。如:ofLocalizedDateTime(FormatStyle.LONG)
自定义的格式。如:ofPattern(“yyyy-MM-dd hh:mm:ss”)

② 常用方法:
在这里插入图片描述

package com.lmw.time;

import org.junit.Test;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;

/**
 * @author 
 * @version 1.0.0
 * @createTime 2022/5/17 15:55
 * @description
 */

public class Jdk8DateTimeTest {
    @Test
    public void test3() {
        // 方法1: 本地预定义
        // 创建对象
        DateTimeFormatter isoLocalDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        LocalDateTime localDateTime = LocalDateTime.now();
        // 格式化 日期转换为字符串
        String str1 = isoLocalDateTime.format(localDateTime);
        System.out.println(localDateTime);
        System.out.println(str1);

        // 解析,字符串转换为日期
        TemporalAccessor parse = isoLocalDateTime.parse(str1);
        System.out.println(parse);

        //方法2:本地化相关格式 如ofLocalizedDateTime() 参数包含LONG、MEDIUM、SHORT
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);
        String str2 = dateTimeFormatter.format(localDateTime);
        System.out.println(str2);

        //本地化相关格式,如 ofLocalizedDate()
        // FormatStyle.FULL/FormatStyle.LONG/FormatStyle.MEDIUM/FormatStyle.SHORT
        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
        String str3 = dateTimeFormatter1.format(LocalDate.now());
        System.out.println(str3);//2022年5月17日 星期二


        // 方法3 自定义格式 重点
        DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        //格式化
        String str4 = dateTimeFormatter2.format(LocalDateTime.now());
        System.out.println(str4);
        // 解析
        TemporalAccessor parse1 = dateTimeFormatter2.parse("2022-05-17 09:28:18");
        System.out.println(parse1);

    }
}
.out.println(str4);
        // 解析
        TemporalAccessor parse1 = dateTimeFormatter2.parse("2022-05-17 09:28:18");
        System.out.println(parse1);

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

Java-JDK8中的时间Api 的相关文章

  • 安卓。 onEditorAction 从未被调用

    我正在尝试捕捉从屏幕上移除键盘的事件 并且我正在使用OnEditorActionListener班级 然而 其onEditorAction方法永远不会被调用 这是我的 XML 格式的 EditText
  • 面试问题 - 在排序数组 X 中搜索索引 i,使得 X[i] = i

    昨天面试时 我被问到了以下问题 考虑一个 Java 或 C 数组X它已排序并且其中没有两个元素是相同的 如何最好地找到索引i这样该索引处的元素也是i 那是X i i 作为澄清 她还给了我一个例子 Array X 3 1 0 3 5 7 in
  • 模拟框架对我有什么作用?

    我听说有些我无法交谈的人是 jmock 的忠实粉丝 我已经做了以测试为中心的开发多年 所以我浏览了网站并查看了一些文档 但仍然不知道它有什么好处 我对春天也有同样的问题 如果您已经了解它是什么 他们的文档会很好地解释它 所以我并不认为 jm
  • 如何检测线程是否被IO阻塞?

    在Java中 线程可以有不同的状态 新的 可运行的 阻塞的 等待的 TIMED WAITING 的 终止的 然而 当线程被IO阻塞时 其状态为 RUNNABLE 如何判断是否被IO阻塞 NEW 线程已创建但尚未处理 可运行 线程正在占用CP
  • mvn dependency:analyze 结果不正确

    我一直在寻找一种工具 它能够向您显示未使用的依赖项 我很快就偶然发现了 Maven 命令mvn dependency analyze 这样做的问题是 它经常检测到 未使用的 依赖项 如果缺失 这些依赖项就会导致构建失败 这是优化项目的示例
  • 如何从 .t​​xt 文件读取数据并将数据放入对象的数组列表中?

    到目前为止 我所写的内容是基于我目前对基本数组的了解 但我只是不明白如何使用数组列表 或如何从文件中读取 到目前为止我所写的内容有效 任何有助于修复我的代码以从文件中读取并使用数组列表的链接或建议将不胜感激 谢谢 public class
  • 将 Spring Boot 应用程序部署到 Heroku 失败并显示“无效标志:--release -> [帮助 1]”

    当我尝试将代码部署到 Heroku 时 通过git push heroku master 我收到 Maven 错误 remote ERROR Failed to execute goal org apache maven plugins m
  • Android - Java - 发送 facebook 聊天消息的意图(facebook 禁用 xmpp)

    Facebook 已弃用 xmpp API 有没有办法打开意图 或将数据传递到fb 以在Android设备上发送聊天消息 设备上安装的 Facebook 和 Messenger 应用 谢谢 您需要将 uri 传递给意图 这里10000572
  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 让 Java 与 Windows 10 Ubuntu 一起使用

    我安装了 Windows 10 周年更新 以便可以在 Windows 上的 Ubuntu 上尝试 Bash 看如何安装 http www howtogeek com 249966 how to install and use the lin
  • 使用 javax.mail 和 CentOS 的邮件服务器

    我有一个 Java 程序 安装在一台旧的 Ubuntu 机器上 并使用 javax mail 发送邮件 然而 那台机器宕机了 我现在在新的 CentOS 机器上运行相同的 Java 应用程序 但是 当我尝试使用 mail smtp host
  • 序言中不允许引用

    请帮我找到这个异常的原因 我使用以下罐子 core renderer jar itext paulo 155 jar 第一个文档 xhtml lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE h
  • 在Java中一个接一个地播放WAV文件

    我正在尝试玩几个WAV http en wikipedia org wiki WAV文件一个接一个 我尝试了这个方法 for String file audioFiles new AePlayWave file start 但这会同时播放它
  • ObservableList 不更新 ArrayList

    对于学校作业 我们正在使用 JavaFX 中的 ObservableList 对象 对吗 我已经为此工作了一天多了 但无法弄清楚 老师只告诉我们 谷歌一下 所以这也没有帮助 基本上 我们正在开发一个基本的管理应用程序来跟踪人们及其家人 人们
  • Android:如何以编程方式仅圆化位图的顶角?

    我目前正在使用这段代码 Override public Bitmap transform Bitmap source Bitmap result Bitmap createBitmap source getWidth source getH
  • 何时以及为何使用缓冲输入和输出流? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我读到这些是为了减少磁盘 网络调用开销而使用的 这在写操作的情况下似乎很好 但是进行缓冲读取有什么好处呢 如果您按字节读取文件 则每次都会进
  • Spring Boot 健康执行器 - 什么时候上线?

    我找不到任何有关 Springs Health Actuator 何时返回 UP 状态的文档 你能依靠一切吗 Components正在初始化 会不会 Controller准备好满足请求了吗 为了测试应用程序上下文是否已加载 您可以执行此自定
  • 跳过一行GridBagLayout

    我在 JFrame 上使用 GridBagLayout 我希望能够跳过一两行 但将这些行显示为空白 然后在这些行后面有一个按钮 我在文档中找不到任何方法来执行我所描述的操作 有谁知道我可以执行此操作的任何方法吗 发现它比添加空组件干净得多
  • gwt - 在 RPC 调用中使用 List

    我有一个 RPC 服务 方法如下 public List

随机推荐

  • Linux内核模块管理命令

    1 insmod命令 在Linux系统下 insmod命令用于将给定的模块加载到内核中去 Linux系统有许多功能是通过模块的方式 在需要时才载入kernel 这样做可以使kernel较为精简 进而提高效率 这类可载入的模块 通常是设备驱动
  • Pytorch学习笔记(六)

    简单的LeNet网络模型 torchvision datasets torchvision是pytorch的一个图形库 它服务于PyTorch深度学习框架的 主要用来构建计算机视觉模型 以下是torchvision的构成 torchvisi
  • 推荐一款好用的数据库 对比工具

    github https gitee com otman dbcompare
  • 设计模式(十八) 中介者模式

    当我们进行多人聊天的时候 如果程序写成一对一的结构 那么当人数一多的时候程序就无法维护了 所以更好的做法就是抽象出一个聊天服务器 每个用户只和服务器进行通信 这样抽取出一个中介者的设计模式 就是中介者模式 如果系统中有大量对象需要互相通信
  • (DecisionTreeRegressor)决策树回归实例-加州房价数据 学习笔记

    import matplotlib pyplot as plt import pandas as pd from sklearn dataset california housing import fetch california hous
  • 从组合中估计概率

    一些分类算法缺乏输出结果为概率的能力 比如rf 这个时候使用calibratedclassifiercv 它使用2种方法将分类结果转化为概率 第一种 platte的归类方法 第二种 isotonic回归 import pandas as p
  • Spring Cloud Gateway 添加统一前缀思路探讨

    1 前言 今天学习一下Spring Cloud Gateway 就先再其他博客上逛了逛 遇到有java开发者在某博客问一个问题 Spring Cloud Gateway 如何添加统一的前缀 当时没有在意 但是脑子里也带着这个问题看起了文档
  • git代码回滚

    git回退历史 有以下步骤 1 已push后回退 1 使用git log命令 查看分支提交历史 确认需要回退版本的
  • Vue.2.0.5-模板语法

    Vue js 使用了基于 HTML 的模版语法 允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据 所有 Vue js 的模板都是合法的 HTML 所以能被遵循规范的浏览器和 HTML 解析器解析 在底层的实现上 Vue 将模板编
  • 日志异常检测-机器学习

    日志搜集 大规模系统通常会生成日志来记录系统状态和运行时信息 每个日志都包括时间戳和指示发生了什么的日志消息 日志解析 日志是非结构化的 包含自由形式的文本 日志解析的目的是提取一组事件模板 从而可以构造原始日志 更具体地说 每个日志消息都
  • Java虚拟机:Java模块化系统

    Java模块化系统目录 1 Java模块化系统 2 模块化的兼容性 1 模块路径 2 模块化系统访问路径规则 3 它本身面临的模块间的管理和兼容性问题 3 模块化的类加载器 1 模块化下的类加载器变动 2 类加载的委派关系变动 1 Java
  • (jsp和servlet功能篇)jsp+servlet+jquery分页代码

    首先看运行效果图 第一步 编写servlet 代码 package com rf servlet import java io IOException import java io OutputStream import java sql
  • 继续干IT的十个理由

    在其文章 不干IT的十个理由 中 Jack Wallen列举了一些离开IT这个行业的理由 而我呢 则愿意提供一个不同的观点 下面有我自己的一些思考 这些也许能对阐明为什么你应当留在IT有所帮助 1 钱 钱 钱 对 我们努力工作就是为了赚钱
  • python实现Lasso回归

    Lasso原理 Lasso与弹性拟合比较python实现 import numpy as np import matplotlib pyplot as plt from sklearn metrics import r2 score def
  • 上传文件的漏洞复现与修复

    本文只说一些我遇到过的上传文件的漏洞 毕竟漏洞太多 我又不可能全部发现 安全方面的小菜鸟 可能你们的系统比较完善 针对这些漏洞 已有相应的防御手段 我们针对的是那种比较简单的系统 就是各位上大学时自己开发的小系统 哈哈哈 利用漏洞的具体效果
  • 鸿蒙OS第四次作业

    数据获取 config json中 module reqPermissions name ohos permission GET NETWORK INFO name ohos permission SET NETWORK INFO name
  • Java——Map和Set的使用

    目录 引言 Map的使用方法 Set说明 用map统计数组中每个数字出现的次数 将数据去重 找出第一个重复出现的数字 宝石与石头 复制带随机指针的链表 只出现一次的数字 引言 Map和Set是适合动态查找的集合容器 Map中存储的就是key
  • oracle备份或还原数据库(expdp、impdp)

    1 首先新建或更改虚拟目录 因为数据泵方式 expdp 导出 和impdp 导入 需要虚拟目录路径 语法 create or replace directory 虚拟目录名 as 虚拟目录绝对路径 例子 创建或修改data backup逻辑
  • IntelliJ IDEA 创建Java项目

    Java模块让你可以开发Java SE和Java EE应用程序 由Java模块提供的核心功能可通过加入各种技术和框架支持进行扩展 当您创建好一个项目后 您可以创建一个Java模块 您还可以添加一个Java模块到现有项目 注意 这里说的Jav
  • Java-JDK8中的时间Api

    Java JDK8中的时间Api java time 1 本地日期 本地时间 本地日期时间的使用 LocalDate LocalTime LocalDateTime package com lmw time import org junit