Java JDK8新日期API

一、   JDK8 中增加了一套全新的日期时间 API,这套 API 设计合理,是线程安全的。

  1. java.time – 包含值对象的基础包
  2. java.time.chrono – 提供对不同的日历系统的访问
  3. java.time.format – 格式化和解析时间和日期
  4. java.time.temporal – 包括底层框架和扩展特性
  5. java.time.zone – 包含时区支持的类

     说明:大多数开发者只会用到基础包和format包,也可能会用到temporal包。因此,尽管有68个新的公开类型,大多数开发者,大概将只会用到其中的三分之一 。

新的日期及时间 API 位于 java.time 包下,如下是一些该包下的关键类:

LocalDate:表示日期,包含:年月日。格式为:2020-01-13
LocalTime:表示时间,包含:时分秒。格式为:16:39:09.307
LocalDateTime:表示日期时间,包含:年月日 时分秒。格式为:2020-01-13T16:40:59.138
DateTimeFormatter:日期时间格式化类
Instant:时间戳类
Duration:用于计算 2 个时间(LocalTime,时分秒)之间的差距
Period:用于计算 2 个日期(LocalDate,年月日)之间的差距
ZonedDateTime:包含时区的时间

 提供这些方法:

二、使用JDK8中的日期时间

 (1)获取当前日期

     //当前日期LocalDate ld=LocalDate.now();System.out.println(ld);//当前时间LocalTime  time=LocalTime.now();System.out.println(time);//日期和时间LocalDateTime tt=LocalDateTime.now();System.out.println(tt);

(2) 设置指定的时间

    //设置指定的年、月、日、时、分、秒。没有偏移量LocalDateTime ldt = LocalDateTime.of(2024, 3, 20, 14, 10, 48);System.out.println(ldt);

(3)获取年月日时分秒

        System.out.println("年:"+ldt.getYear());System.out.println("本月第几天:"+ldt.getDayOfMonth());System.out.println("日期周几:"+ldt.getDayOfWeek());    //枚举System.out.println("本月英文:"+ldt.getMonth());        //枚举System.out.println("本月数字:"+ldt.getMonthValue());System.out.println("一年中第几天:"+ldt.getDayOfYear());System.out.println("时:"+ldt.getHour());System.out.println("分:"+ldt.getMinute());System.out.println("秒:"+ldt.getSecond());

 

(4)设置偏移量 :plusXXX,minusXXX

       // 获取当前日期LocalDateTime date = LocalDateTime.now();// 创建一个日期格式化器DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 使用格式化器格式化日期String str = date.format(formatter);System.out.println("系统当前日期:"+str);//下个月的今天LocalDateTime next=date.plusMonths(1);String str2 = next.format(formatter);System.out.println("下个月的今天: "+str2);//去年的今天LocalDateTime last=date.minusYears(1);String str3 = last.format(formatter);System.out.println("去年的今天:   "+str3);

(5)设置时间/日期:withDayOfMonth()/withDayOfYear()/withMonth()/withYear()

// 获取当前日期LocalDateTime date = LocalDateTime.now();// 创建一个日期格式化器DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// 使用格式化器格式化日期String str = date.format(formatter);System.out.println("系统当前日期:"+str);//上个月的第三天LocalDateTime third=date.minusMonths(1).withDayOfMonth(3);String str4 = third.format(formatter);System.out.println("上个月的第3天:"+str4);

(6)计算日期相对间隔(计算年龄)

        //现在日期LocalDate now=LocalDate.now();//出生日期LocalDate bir=LocalDate.of(2001,3,1);//age=现在日期-出生日期Period period= Period.between(bir,now);//获取年龄int age=period.getYears();System.out.println("从"+bir+"出生到现在"+now+"的年龄是:"+age);

 

 // 创建 LocalDate 对象LocalDate date = LocalDate.now();System.out.println(date);// 计算两个日期之间相差的时间LocalDate date2 = LocalDate.of(2023, 2, 10);System.out.println(date2);Period period = Period.between(date2, date);System.out.println(period.getYears() + "年" + period.getMonths() + "月" + period.getDays() + "天"); // 输出:0年11月11天// 创建 LocalTime 对象LocalTime time = LocalTime.now();System.out.println(time);// 计算两个时间点之间相差的时间LocalTime time2 = LocalTime.of(10, 30);System.out.println(time2);Duration duration = Duration.between(time2, time);System.out.println(duration.toHours() + "小时" + duration.toMinutes() % 60 + "分钟"); // 输出:6小时1分钟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/761472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

考研数学老师怎么选❓看这一篇就够了

张宇、汤家凤、武忠祥、李永乐、杨超、王式安、方浩这些老师都有自己擅长的细分 比如张宇老师,杨超,汤家凤,武忠祥老师的高数讲的很好,李永乐老师是线代的神,王式安、方浩概率论讲的很好,所以对于不同的学…

【文末附gpt升级4.0方案】FastGPT详解

FastGPT知识库结构讲解 FastGPT是一个基于GPT模型的知识库,它的结构可以分为以下几个部分: 1. 数据收集:FastGPT的知识库是通过从互联网上收集大量的文本数据来构建的。这些数据可以包括维基百科、新闻文章、论坛帖子等各种类型的文本。 2…

【openCV】手写算式识别

OpenCV 机器学习库提供了一系列 SVM 函数和类来实现 SVM 模型的训练和预测,方便用户实现自己的 SVM 模型,并应用于分类问题。本文主要介绍使用 openCV 实现手写算式识别的工作原理与实现过程。 目录 1 SVM 模型 1.1 SVM 模型介绍 1.2 SVM 模型原理 2…

3.21系统栈、数据结构栈、栈的基本操作、队列、队列的基本操作------------》

栈 先进后出、后进先出 一、系统栈 大小:8MB 1、局部变量 2、未经初始化为随机值 3、代码执行到变量定义时为变量开辟空间 4、当变量的作用域结束时回收空间 5、函数的形参和返回值 6、函数的调用关系、保护现场和恢复现场 7、栈的增长方向,自高…

【Linux进程的状态】

目录 看Linux源码中的说法 如何查看进程状态? 各个状态的关系 僵尸进程 举个栗子 现象 僵尸进程的危害 孤儿进程 举个栗子 现象 进程的优先级 基本概念 为什么要有进程优先级? 查看系统进程 进程的大致属性 进程优先级vs进程的权限 Linu…

[Semi-笔记] 2023_TIP

目录 概要一:Conservative-Progressive Collaborative Learning(保守渐进式协作学习)挑战:解决: 二:Pseudo Label Determination for Disagreement(伪标签分歧判定)挑战:…

利用python进行接口测试及类型介绍

前言 其实我觉得接口测试很简单,比一般的功能测试还简单(这话我先这样说,以后可能会删O(∩_∩)O哈!),现在找工作好多公司都要求有接口测试经验,也有好多人问我(也就两三个人&#x…

解决微信小程序代码包大小限制方法

1 为什么微信小程序单个包的大小限制为 2MB 微信小程序单个包的大小限制为 2MB 是出于以下几个考虑: 保证小程序的启动速度:小程序的启动速度是影响用户体验的关键因素之一。如果包太大,会导致小程序启动时间过长,从而影响用户体…

node安装

这里写目录标题 https://nodejs.cn/ https://registry.npmmirror.com/binary.html?pathnode/ https://registry.npmmirror.com/binary.html?pathnode/v11.0.0/

一、rv1126开发之视频输入和视频编码

RV1126 H264/HEVC编码流程 一、RV1126编码的流程图: 二、每个代码模块详细讲解 2.1. VI模块的创建 VI模块的初始化:关键在于VI_CHN_ATTR_S结构体,这个结构体是VI设置的结构体。这个结构体的成员变量包括:pcVideoNode&#xff0…

[力扣 129]求根节点到叶节点之和

题目描述: 思路: 可以采用递归回溯。递归访问左->右->根节点并记录路径。到叶节点后,计算数字并相加。 代码: class Solution:def sumNumbers(self, root: TreeNode) -> int:res 0path []def backtrace(root):nonl…

Autosar Crypto Driver学习笔记(二)

文章目录 Crypto DriverFunction definitionsGeneral APICrypto_InitCrypto_GetVersionInfo Job Processing InterfaceCrypto_ProcessJob Job Cancellation InterfaceKey Management InterfaceKey Setting Interface密钥设置接口Crypto_KeyElementSetCrypto_KeySetValid Key Ex…

RabbitMQ集群部署

集群部署 我们看看如何安装RabbitMQ的集群。 1.集群分类 在RabbitMQ的官方文档中,讲述了两种集群的配置方式: 普通模式:普通模式集群不进行数据同步,每个MQ都有自己的队列、数据信息(其它元数据信息如交换机等会同…

2024年高压电工证模拟考试题库及高压电工理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年高压电工证模拟考试题库及高压电工理论考试试题是由安全生产模拟考试一点通提供,高压电工证模拟考试题库是根据高压电工最新版教材,高压电工大纲整理而成(含2024年高压电工证…

【Leetcode每日一题】 递归 - Pow(x, n)(难度⭐⭐)(40)

1. 题目解析 题目链接:50. Pow(x, n) 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 在这个算法中,递归函数的任务是求出 x 的 n 次方。那么,这个函数是怎么工作的呢?它…

es 集群核心概念以及实践

节点概念: 节点是一个Elasticsearch的实例 本质上就是一个JAVA进程一台机器上可以运行多个Elasticsearch进程,但是生产环境一般建议一台机器上只运行一个Elasticsearch实例 每一个节点都有名字,通过配置文件配置,或者启动时候 -…

软件工程-第5章 结构化设计

5.1 总体设计的目标及其表示方法 5.2 总体设计 变换设计基本步骤: 第1步:设计准备--复审并精华系统模型; 第2步:确定输入、变换、输出这三部分之间的边界; 第3步:第一级分解--系统模块结构图顶层和第一层…

产品软文怎么写?媒介盒子分享公式

软文写出来的目的除了提高品牌知名度外,还需要推广产品,当企业新品上市、推广产品以及营销产品的时候,就需要产品类软文出手。然而产品软文想要写好还需要一定的技巧,今天媒介盒子就来和大家分享:产品软文写作公式。 一…

把txt、pdf等文件转为一行一行的doccano数据集输入格式

文章目录 doccano 数据集导入简介代码实现代码运行结果代码公开 doccano 数据集导入 在Doccano 导入数据集时,使用TextLine的文件格式,导入的文件需要为一行一行文本的数据格式,每一行文本在导入Doccano后就是一条数据。 简介 主要工作说明…

[linux]--关于进程概念(下)

目录 孤儿进程 环境变量 将程序放到PATH路径下 设置PATH环境变量 设置别名 环境变量相关的命令 环境变量的组织方式​编辑 通过系统调用获取环境变量 环境变量通常是具有全局属性的 进程优先级 查看系统进程 用top命令更改已存在进程的nice: 程序地址空…