Java日期时间类

news2024/9/25 11:34:22

Java日期时间类

  • Date
    • new Date()**获取当前系统时间**
    • 通过**指定毫秒数得到时间**
    • format**指定日期格式**
    • SimpleDateFormat的模式字母:
    • parse()可以把**格式化的String转成对应Date**
  • Calendar(日历)
    • 创建日期类对象
    • 获取日历对象的某个日历字段
  • 第三代日期
    • 1.LocalDateTime
      • 使用now()返回表示当前日期时间的对象
      • LocalDateTime各种方法获取所需时间
      • LocalDate与LocalTime
    • 2.DateTimeFormatter对象进行格式化
    • 3.Instant时间戳
      • now返回当前Instant对象
      • 通过from把Instant转为Date
      • 通过date的toInstant()把date转为Instant对象
    • 更多方法


⭐ 更多干货请点击此处

在这里插入图片描述

Date

  1. date精确到毫秒,代表特定的瞬间
  2. SimpleDateFormat:格式和解析日期的类。SimpleDateFormat格式化日期的具体类。它允许进行格式化(日期–>文本)、解析(文本–>日期)和规范化

需要引入java.util.Date

new Date()获取当前系统时间

Date d1 = new Date(); //获取当前系统时间
System.out.println("当前日期="+d1); //默认输出格式是国外方式,需要格式转换

输出

在这里插入图片描述


通过指定毫秒数得到时间

Date d2 = new Date(9234567); 
System.out.println("当前日期"+d2);

输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wc2i0ota-1673270180840)(C:\Users\86159\AppData\Roaming\Typora\typora-user-images\image-20230109174854520.png)]


format指定日期格式

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String format = sdf.format(d1); //format:将日期转换成指定格式的字符串
System.out.println("当前日期="+d1);

输出


SimpleDateFormat的模式字母:

在这里插入图片描述


parse()可以把格式化的String转成对应Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String s = "1996年01月01日 10:20:30 星期一";
Date parse = sdf.parse(s); //使用的sdf格式需要和给的String格式应用,否则抛出转换异常
System.out.println("parse="+parse); //默认国外形式
System.out.println("parse="+sdf.format(parse)); //转成自定义

输出
在这里插入图片描述在这里插入图片描述


Calendar(日历)

  1. 第二代日期类主要就是Calendar类
public abstract class Calendar extends Object implements Serializable,Cloneable,Comparable<Calendar>

在这里插入图片描述

  1. Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期日期)提供了一些方法
  2. new不出来,构造器是private,必须通过**getInstance()**来获取示例

需要引入java.util.Calendar

创建日期类对象

Calendar c = Calendar.getInstance();
System.out.println("c="+c);

输出

在这里插入图片描述


获取日历对象的某个日历字段

System.out.println("年:"+c.get(Calendar.YEAR));
System.out.println("月:"+c.get(Calendar.MONTH)+1);//从0开始,所以加一
System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
System.out.println("小时:"+c.get(Calendar.HOUR));//若要用24小时法,改为 HOUR_OF_DAY
System.out.println("分钟:"+c.get(Calendar.MINUTE));
System.out.println("秒:"+c.get(Calendar.SECOND));
//没专门的格式化方法,需要自己组合

输出

在这里插入图片描述


第三代日期

  • 前两代日期类的不足:
    JDK 1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK 1.1引Calendar类之后被弃用了。而Calendar也存在问题:

    1. 可变性:像日期和时间这样的类应该是不可变的。
    2. 偏移性:Date中的年份是从1900开始的,而月份都从0开始。
    3. 格式化:格式化只对Date有用,Calendar则不行。
    4. 此外,它们也不是线程安全的;不能处理闰秒等(每隔2天,多出1s)。
  • 第三代日期类常见方法:JDK8加入

    1. LocalDate(日期/年月日)
    2. LocalTime(时间/时分秒)
    3. LocalDateTime(日期时间/年月日时分秒)

在这里插入图片描述


1.LocalDateTime

使用now()返回表示当前日期时间的对象

LocalDateTime ldt = LoaclDateTime.now(); //LoaclDate.now();//LoaclTime.now();
System.out.println(ldt);

输出

在这里插入图片描述


LocalDateTime各种方法获取所需时间

LocalDateTime ldt = LoaclDateTime.now(); //LoaclDate.now();//LoaclTime.now();
System.out.println("年=" + ldt.getYear());
System.out.println("月=" + ldt.getMonth());
System.out.println("月=" + ldt.getMonthValue());
System.out.println("日=" + ldt.getDayOfMonth());
System.out.println("时=" + ldt.getHour());
System.out.println("分=" + ldt.getMinute());
System.out.println("秒=" + ldt.getSecond());

输出

在这里插入图片描述


LocalDate与LocalTime

LocalDate ld = LocalDate.now(); //可以获取年月日
LocalTime lt = LocalTime.now(); //可以获取时分秒

2.DateTimeFormatter对象进行格式化

类似SimpleDateFormat

DateTimeFormatter dtf = DateTimeFormatter.ofPattern(格式);

String str = dtf.format(日期对象);
LocalDateTime ldt = LoaclDateTime.now();

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒");

String format = dateTimeFormatter.format(ldf);

System.out.println("格式化的日期=" + format);

输出

在这里插入图片描述

在这里插入图片描述


3.Instant时间戳

类似Date

提供了一系列和Date类转换的方式

Instant–>Date:

Date date = Date.from(instant);

Date–>Instant

Instant instant = date.toInstant();

在这里插入图片描述


now返回当前Instant对象

Instant now = Instant.now();
System.out.println(now);

输出

在这里插入图片描述


通过from把Instant转为Date

Date date = Date.from(now);

通过date的toInstant()把date转为Instant对象

Instant instant = date.toInstant();

更多方法

  • LocalDateTime类
  • MonthDay类:检查重复事件
  • 是否是闰年
  • 增加日期的某个部分
  • 使用plus方法测试增加时间的某个部分
  • 使用minus方法测试查看一年前和一年后的日期

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

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

相关文章

【Linux】五、Linux 进程控制(总)|进程创建|进程终止|进程等待进程程序替换|模拟shell

目录 一、进程创建 1.1 再谈 fork 函数 1.2 fork 函数返回值问题 1.2 写时拷贝 1.3 fork 常规用法 1.4 fork调用失败的原因 二、进程终止 2.1 进程退出码 2.2 进程退出场景 2.3 进程如何退出 三、进程等待 3.1 进程等待必要性 3.2 进程等待的方法 3.2.1 通过 wai…

【二进制安全面试题】linux篇:保护机制、函数调用约定

前言 上来先道歉&#xff0c;对不起(&#xff1e;人&#xff1c;&#xff1b;)对不起&#xff0c;博客鸽了好久。私下有好多朋友问我毕业工作的事情&#xff0c;毕竟搞二进制最重要的是要有热情&#xff01;我能做的也是有限&#xff0c;每个人的学习方式不完全相同&#xff0c…

Http4s 存在输入验证不当漏洞(CVE-2023-22465)

漏洞描述 http4s 是一个用于处理 HTTP 服务的 Scala 接口。 http4s 的受影响版本延迟加载模型化标头&#xff08;modeled headers&#xff09;&#xff0c;用于处理规范化标头的请求&#xff08;如&#xff1a;Option[Header] req.headers.get(“User-Agent”.ci)&#xff0…

C语言进阶——字符串函数(一)

目录 一. strlen 二. strcpy 三. strcat 四. strcmp 五. strncpy 六. strncat 七. strncmp 八. strstr 九. strtok 一. strlen 字符串以 \0 作为结束标志&#xff0c;strlen函数返回的是在字符串中 \0 前面出现的字符个数&#xff08;不包 含 \0 …

陪诊软件开发,陪诊服务具备哪些好处,前景如何

在当下互联网快速发展的时代&#xff0c;我们要首先明确&#xff0c;一个行业的发展最重要的是什么&#xff0c;什么才能促进这个行业的前进。当然是用户的数量&#xff0c;**而我们的陪诊服务&#xff0c;潜在的用户数量是巨大的。因为自己独立不便就医的人群&#xff0c;都可…

maven导入第三方jar包,出现找不到类

我们开发时&#xff0c;会用到第三代第三方的jar包&#xff0c;私服上没有&#xff0c;只能导入使用。 导入步骤&#xff1a; 1、在项目根目录建文件夹lib&#xff0c;降jar包复制过去。 在pom.xml中引入jar包&#xff0c;如引入bcprov-jdk15on-1.59.jar <dependency>&…

c++ - 第21节 - 智能指针

1.为什么需要智能指针 分析一下下面这段程序有没有什么内存方面的问题&#xff1f;前面在异常的博客中&#xff0c;我们分析了下图一的代码Func函数中如果div()函数抛异常则程序会直接跳到主函数的catch捕获程序部分&#xff0c;然后接着主函数catch捕获程序部分往后执行代码&a…

【IOS的safari浏览器】uniapp的H5项目 safari<添加到主屏幕>功能的实现(多页面、单页面)

uniapp的H5项目safari <添加到主屏幕>功能的实现ios添加到主屏幕的需求具体效果实现前提完整的HTML页面如何判断应用是从主屏幕打开还是从浏览器打开特殊情况ios添加到主屏幕的需求 添加到主屏幕——这个功能属于ios的safari浏览器的特性之一&#xff0c;他可以让我们的…

Java环境安装、替换jdk后java编译javac无反应,但java和java -version可以成功:实操解决方案

这里写自定义目录标题问题背景方案一方案二方案三问题背景 最近换了新电脑&#xff0c;安装java环境&#xff0c;一次性下载了3个jdk版本&#xff0c;在配置后返现 cmd命令行下javac编译java文件不成功&#xff0c;但是输入java和java -version没问题 在CSDN看了许多解决方案…

linux安装go

下载地址 https://studygolang.com/dl?id2&id15&id0&id8&adinfo678baidu&adinfo678baidu%3Epage%3E go语言中文网 解压 tar -xvf go1.19.4.linux-amd64.tar.gz 解压之后在 root目录下面 有个 go的文件夹 vim ~/.bashrc 配置环境变量 export GOROOT/roo…

【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解

疫情数据可视化大屏制作步骤详解1 项目效果图2 项目架构3 文件介绍和功能完善3.1 assets文件夹介绍3.2 app.py和index.py文件完善3.3 header.py文件完善3.4 cards.py文件完善3.5 api.py和api.ipynb文件完善3.5.1 数据获取3.5.2 数据处理3.5.3 接口数据导入header.py和cards.py文…

SpringMVC基本使用

SpringMVC基本使用1、回顾MVC1.1、什么是MVC1.2、Model1时代1.3、Model2时代1.4、回顾Servlet2、什么是SpringMVC2.1、概述2.2、中心控制器2.3、SpringMVC执行原理3、HelloSpring3.1、配置版3.2、注解版3.3、小结4、Controller 及 RestFul4.1、控制器Controller4.2、实现Contro…

【笔记:第一课】学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春

文章目录前言来源正文小结前言 创作开始时间&#xff1a;2023年1月9日20:02:19 如题&#xff0c;学习一下RISC-V。 来源 https://www.bilibili.com/video/BV1Q5411w7z5/ 正文 打好基础&#xff01;好好学习 本课程目的&#xff1a; 了解 RISC-V 的相关知识学会查看RISC-…

week10

T1 Einstein学画画 题目描述 Einstein 学起了画画。 此人比较懒~~&#xff0c;他希望用最少的笔画画出一张画…… 给定一个无向图&#xff0c;包含 nnn 个顶点&#xff08;编号 1∼n1 \sim n1∼n&#xff09;&#xff0c;mmm 条边&#xff0c;求最少用多少笔可以画出图中所…

解决RuntimeError: CUDA error: out of memory

注意&#xff1a;报错内容只有这一行&#xff0c;RuntimeError: CUDA error: out of memory&#xff0c;没有后面的内存分析。 因为报错的时候忘记截图了&#xff0c;修改好了才来记录的。这里引用别的博主的图片。图片来源 1&#xff1a;刚开始我怀疑是batchsize设的太大了&a…

vue01-基础

一、vue简介 1.1 描述 一套用于构建用户界面的渐进式JavaScript框架 构建用户界面&#xff1a;把数据处理成界面 渐进式&#xff1a;可以从简单应用引入的轻量小巧核心库&#xff0c;扩展至各式vue插件 1.2 特点 1.组件化模式&#xff0c;提高代码复用率且便于维护&#…

【自学Python】Python整型(int)

Python整型(int) Python整型(int)教程 Python 整型专门用来表示整数。 Python 整型支持四种形式&#xff0c;即十进制形式、二进制形式、八进制形式和十六进制形式。 Python整型(int) 十进制形式 Python 最常见的整数就是十进制形式的整数。在使用十进制表示整数值时&…

虚拟化技术学习笔记7

1、KVM虚拟机CPU热添加&#xff1a; # 能够了解虚拟机添加CPU的作用及预准备 # 能够通过virt-manager为虚拟机添加CPU # 能够通过virsh命令为虚拟机添加CPU CPU热添加&#xff0c;不需要重新启动虚拟机。这个是CPU的热添加。 virsh list virsh dominfo centos7-1lscpuvish s…

软件测试中的网络问题

1.背景 在测试过程中&#xff0c;出现的问题&#xff0c;除了代码问题&#xff0c;还有很多的网络问题&#xff0c;所以需要了解网络知识&#xff0c;这样能发现网络问题&#xff0c;尽快解决就能提高效率。 2.计算机网络体系结构 OSI七层模型&#xff1a;物理层&#xff0c…

【链表】leetcode24. 两两交换链表中的节点(C/C++/Java/Js)

leetcode24. 两两交换链表中的节点1 题目2 思路3 代码3.1 C版本&#xff08;递归迭代&#xff09;3.2 C版本&#xff08;递归迭代&#xff09;3.3 Java版本&#xff08;递归迭代&#xff09;3.4 JavaScript版本4 总结1 题目 题源链接 给你一个链表&#xff0c;两两交换其中相…