Java的时间类

1. 日期类

1.1 第一代日期类

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

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/***@author
*@version1.0*/public class Date01{public static void main(String[ ] args ) throws ParseException{
//解读
//1. 获取当前系统时间
//2. 这里的Date 类是在java.util 包
//3. 默认输出的日期格式是国外的方式, 因此通常需要对格式进行转换Date d1 = new Date(); //获取当前系统时间System.out.println("当前日期=" + d1);Date d2 = new Date(9234567); //通过指定毫秒数得到时间System.out.println("d2=" + d2); //获取某个时间对应的毫秒数//解读
//1. 创建 SimpleDateFormat 对象,可以指定相应的格式
//2. 这里的格式使用的字母是规定好,不能乱写SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 hh:mm:ss E");String format = sdf.format(d1); // format:将日期转换成指定格式的字符串System.out.println("当前日期=" + format);//解读
//1. 可以把一个格式化的String 转成对应的 Date//2. 得到Date 仍然在输出时,还是按照国外的形式,如果希望指定格式输出,需要转换
//3. 在把String-> Date , 使用的 sdf 格式需要和你给的String的格式一样,否则会抛出转换异常String s = "1996 年 01 月 01 日 10:20:30 星期一";Date parse = sdf.parse(s);System.out.println("parse=" + sdf.format(parse));
}}

1.2 第二代日期类

1) 第二代日期类,主要就是Calendar类(日历)。
        public abstract class Calendar extends object implements Serializable,Cloneable,         Comparable<calendar>
2) Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH.DAY_OF_MONTH、HOUR等 日历室段 之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

 import java.util.Calendar;/***@author
*@version1.0*/public class Calendar_{public static void main(String[]args){//解读
//1.Calendar是一个抽象类,并且构造器是private//2.可以通过getInstance()来获取实例
//3.提供大量的方法和字段提供给程序员
//4.Calendar没有提供对应的格式化的类,因此需要程序员自己组合来输出(灵活)//5.如果我们需要按照24小时进制来获取时间,Calendar.HOUR==改成=>Calendar.HOUR_OF_DAYCalendarc=Calendar.getInstance();//创建日历类对象//比较简单,自由System.out.println("c="+c);//2.获取日历对象的某个日历字段System.out.println("年:"+c.get(Calendar.YEAR));//这里为什么要+1,因为Calendar返回月时候,是按照0开始编号System.out.println("月:"+(c.get(Calendar.MONTH)+1));System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));System.out.println("小时:"+c.get(Calendar.HOUR));System.out.println("分钟:"+c.get(Calendar.MINUTE));System.out.println("秒:"+c.get(Calendar.SECOND));
//Calender没有专门的格式化方法,所以需要程序员自己来组合显示System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" +
c.get(Calendar.DAY_OF_MONTH)+""+c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));} }

1.3 第三代日期类

前面两代日期类的不足分析
        JDK 1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK 1.1引入Calendar类之后被弃用了。而Calendar也存在问题是:
1) 可变性:像日期和时间这样的类应该是不可变的。
2) 偏移性:Date中的年份是从1900开始的,而月份都从0开始。
3) 格式化:格式化只对Date有用,Calendar则不行。
4) 此外,它们也不是线程安全的; 不能处理闰秒等(每隔2天,多出1s).

       1.  LocalDate(日期/年月日)、LocalTime(时间/时分秒)、LocalDateTime(日期时间/年月日时分秒)JDK8加入
        LocalDate 只包含日期,可以获取日期字段
        LocalTime 只包含时间,可以获取时间字段
        LocalDateTime 包含日期+时间,可以获取日期和时间字段
        LocalDateTime ldt = LocalDateTime.now();//LocalDate.now(;//LocalTime.now()System.out.println(ldt);
        ldt.getYear();ldt.getMonthValue();ldt.getMonth();ldt.getDayofMonth( );
        ldt.qetHour(): ldt.qetMinute():ldt.qetSecond():

 import java.time.Instant;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.format.DateTimeFormatter;import java.util.ArrayList;import java.util.Collection;/**
* @author 
* @version 1.0*/public class LocalDate_ {public static void main(String[] args) {//第三代日期
//解读
//1. 使用now() 返回表示当前日期时间的 对象LocalDateTime ldt = LocalDateTime.now(); //LocalDate.now();//LocalTime.now()System.out.println(ldt);//2. 使用DateTimeFormatter 对象来进行格式化
// 创建 DateTimeFormatter 对象DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String format = dateTimeFormatter.format(ldt);System.out.println("格式化的日期=" + format);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 now = LocalDate.now(); //可以获取年月日LocalTime now2 = LocalTime.now();//获取到时分秒
//提供 plus 和 minus方法可以对当前时间进行加或者减
//看看890 天后,是什么时候 把 年月日-时分秒LocalDateTime localDateTime = ldt.plusDays(890);System.out.println("890 天后=" + dateTimeFormatter.format(localDateTime));//看看在 3456分钟前是什么时候,把 年月日-时分秒输出LocalDateTime localDateTime2 = ldt.minusMinutes(3456);System.out.println("3456 分钟前 日期=" + dateTimeFormatter.format(localDateTime2));} }

1.4 DateTimeFormatter 格式日期类

类似于 SimpleDateFormat
DateTimeFormat dtf =DateTimeFormatter.ofPattern(格式);
String str = dtf.format(日期对象);
案例:

LocalDateTime ldt = LocalDateTime.now0;
//关于DateTimeFormatter的各个格式参数,需要看jdk8的文档.
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日HH小时mm分钟ss秒");
String strDate = dtf.format(ldt);

1.5 Instant 时间戳

类似于Date
提供了一系列和Date类转换的方式
        lnstant—>Date:
        Date date = Date.from(instant);
        Date—>lnstant:
        lnstant instant = date.tolnstant);
案例:

Instant now = Instant.now();
System.out.println(now);
Date date =Date.from(now);
​​​​​​​lnstant instant = date.tolnstant();
 import java.time.Instant;import java.util.Date;/***@author
*@version1.0*/public class Instant_{public static void main(String[]args){//1.通过静态方法now()获取表示当前时间戳的对象Instant now = Instant.now();System.out.println(now);//2.通过from可以把Instant转成DateDatedate=Date.from(now);
//3. 通过 date 的toInstant() 可以把 date 转成Instant 对象Instant instant = date.toInstant();} }

1.6 第三代日期类更多方法

LocalDateTime类
MonthDay类: 检查重复事件是
否是闰年
增加日期的某个部分
使用plus方法测试增加时间的某个部分
使用minus方法测试查看一年前和一年后的日期
其他的方法,就不说,使用的时候,自己查看API使用即可

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

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

相关文章

鸿蒙开发实现联系人列表(仿微信通讯录)

先看效果 直入主题 UI结构 Stack帧结构容器List联系人列表AlphabetIndexer字母索引器 实现代码 1. 先定义好假数据 通讯录列表数据 private dataList: any [{title: ,contactList: [{ name: "新的朋友", head: $r("app.media.ic_new_friend") },{ n…

CLIP 浅析

CLIP 浅析 文章目录 CLIP 浅析概述如何训练CLIP如何使用Clip进行图像分类优缺点分析优点缺点 概述 CLIP的英文全称是Contrastive Language-Image Pre-training&#xff0c;即一种基于对比文本-图像对的预训练方法或者模型。 如何训练CLIP CLIP包括两个模型&#xff1a;Text …

Web APIs - 第1天笔记

了解 DOM 的结构并掌握其基本的操作&#xff0c;体验 DOM 的在开发中的作用 知道 ECMAScript 与 JavaScript 的关系 了解 DOM 的相关概念及DOM 的本质是一个对象 掌握查找节点的基本方法 掌握节点属性和文本的操作 能够使用间歇函数创建定时任务 介绍 知道 ECMAScript 与…

ok_Keil实用小技巧 | Keil定制Hex文件名实现的方法

Keil实用小技巧 | Keil定制Hex文件名实现的方法 echo off REM 可执行文件&#xff08;Hex&#xff09;文件名 set HEX_NAMEDemo REM 可执行文件&#xff08;Hex&#xff09;文件路径 set HEX_PATH.\Objects REM 定制Hex输出路径 set OUTPUT_PATH.\Output REM 软件版本文件…

答辩PPT不会做?试试这些AI工具,一键生成

在我原本的认知里面&#xff0c;答辩PPT是要包含论文各个章节的&#xff0c;在答辩时需要方方面面都讲到的&#xff0c;什么摘要、文献综述、实证分析、研究结果样样不落。但是&#xff0c;这大错特错&#xff01; 答辩PPT环节时长一般不超过5分钟&#xff0c;老师想要的答辩P…

解读丰田生产方式的工作原理

丰田生产方式&#xff0c;被誉为现代制造业的瑰宝&#xff0c;以其独特的精益生产理念&#xff0c;引领了全球制造业的变革。本文将从丰田生产方式的核心理念、两大支柱、应用实践以及面临的挑战等方面&#xff0c;全面解读其工作原理。 丰田生产方式&#xff0c;又称精益生产&…

数据库调优-连接池优化

先贴下连接池的相关配置&#xff1a; 连接池参数配置&#xff1a; 字段含义Max Number of Connections最大连接数&#xff1b;做性能测试时&#xff0c;可以填 0 。在开发的项目中按实际代码填写&#xff0c;默认是 20 。Max Wait(ms)在连接池中取回连接最大等待时间&#xf…

在 Navicat 17 创建一个数据字典

即将于 5 月 13 日发布的 Navicat 17&#xff08;英文版&#xff09;添加了许多令人兴奋的新功能。其中之一就是数据字典工具。它使用一系列 GUI 指导你完成创建专业质量文档的过程&#xff0c;该文档为跨多个服务器平台的数据库中的每个数据元素提供描述。在今天的博客中&…

基于springboot+vue+Mysql的外卖点餐系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

嵌入式基础课程配套电机FOC伺服电机开发板AT32F403磁编码IMU姿态

嵌入式基础课程配套电机FOC伺服电机开发板AT32F403磁编码IMU姿态 带你入门嵌入式有二十多年开发经验的老技骨做技术支持整个开发包硬件包括电机2205&#xff0c;支持12V到24V宽输入&#xff0c;配套12V2A电源。包装原理图和PCB嵌入式软件嵌入式基础课程 带你入门嵌入式 电机FO…

瀚高数据库(HighGoDB)Windows安装使用

1.下载 2.安装 瀚高数据库下载与安装&#xff08;Windows版&#xff09;-CSDN博客 3.连接工具 4.建库、建表操作 瀚高数据库管理工具-CSDN博客 *报错Cant access non-default database&#xff0c;需要右键数据库-设为活动对象 5.导入外部数据&#xff08;迁移、对比&…

多模态CLIP和BLIP

一、CLIP 全称为Contrastive Language-Image Pre-Training用于做图-文匹配&#xff0c;部署在预训练阶段&#xff0c;最终理解为图像分类器。 1.背景 以前进行分类模型时&#xff0c;存在类别固定和训练时要进行标注。因此面对这两个问题提出CLIP&#xff0c;通过这个预训练…

2024年4月12日饿了么春招实习试题【第二题:魔法师】-题目+题解+在线评测【二分】

2024年4月12日饿了么春招实习试题【第二题:魔法师】-题目题解在线评测【二分】 题目描述&#xff1a;输入格式输出格式样例输入样例输出评测数据与规模 解题思路一&#xff1a;解题思路二&#xff1a;解题思路三&#xff1a;动态规划 题目描述&#xff1a; 塔子哥是一名魔法师…

斯坦福李飞飞最新对话:AI不会对人类造成“灭绝性危机” | 最新快讯

美国斯坦福大学教授、美国国家工程院院士李飞飞&#xff08;来源&#xff1a;斯坦福大学账号&#xff09; 北京时间 5 月 10 日凌晨举行的 Bloomberg Tech 活动上&#xff0c;著名华人计算机科学家、美国斯坦福大学教授李飞飞&#xff08;Fei-Fei Li&#xff09;与彭博社 Emily…

三星硬盘格式化后怎么恢复数据

在数字化时代&#xff0c;硬盘作为数据存储的核心部件&#xff0c;承载着我们的重要文件、照片、视频等资料。然而&#xff0c;不慎的格式化操作可能使我们失去宝贵的数据。面对这样的困境&#xff0c;许多用户可能会感到无助和焦虑。本文旨在为三星硬盘用户提供格式化后的数据…

【计算机网络】数据链路层的功能

数据链路层的基本功能&#xff1a; 封装成帧透明传输差错检测 数据链路层使用的信道主要有两种 点对点信道——PPP协议广播信道——CSMA/CD协议(有线局域网)、CSMA/CA协议(无线局域网) 数据链路层所处的地位 从图中可以看出&#xff0c;数据从主机H1送到主机H2需要在路径中…

【Java探索之旅】继承结构 继承和组合 protected final

文章目录 &#x1f4d1;前言一、继承1.1 继承关系的代码块1.2 protected关键字1.3 继承方式1.4 final关键字1.5 继承与组合 &#x1f324;️全篇总结 &#x1f4d1;前言 在面向对象编程中&#xff0c;继承是一种重要的概念&#xff0c;它允许我们创建一个新类&#xff0c;从现有…

树莓派realVNC分辨率不对

用putty进入树莓派 输入sudo raspi-config 找到第二个 里面有一个VNC resolution好像是这个&#xff0c;可以调节分辨率

有哪些是618必买的数码好物,这几款千万别错过

备受瞩目的618购物节即将拉开帷幕&#xff0c;身为数码领域的资深发烧友&#xff0c;我迫不及待地要为大家呈现一系列精心挑选的数码产品。无论您是热衷于追求科技尖端的先锋者&#xff0c;还是希望用智能设备为生活增添一抹亮色的品味人士&#xff0c;这里总有一款能让您心动的…

如何将一个VPS上的网站全部迁移至另外一个VPS服务器

最近我们老的VPS即将到期&#xff0c;由于近期Hostease的VPS活动力度较大&#xff0c;我们购买了Hostease的VPS&#xff0c;购买后需要将原服务器的所有网站迁移到Hostease提供的VPS中。在Hostease技术人员的帮助下&#xff0c;我们成功进行了迁移&#xff0c;下面我就介绍此次…