当前位置: 首页 > news >正文

java后端开发day28--常用API(三)时间类包装类

在这里插入图片描述
(以下内容全部来自上述课程)
在这里插入图片描述
在这里插入图片描述

1.JDK7以前的时间相关类

1.Date

全世界的时间,有一个统一的计算标准。
格林威治时间:GMT(已过时)
原子钟(现在)
中国标准时间:世界标准时间+8小时(东八区)

时间单位换算:

  • 1秒=1000毫秒
  • 1毫秒=1000微妙
  • 1微妙=1000纳秒

Date类是一个JDK写好的Javabean类,用来描述时间,精确到毫秒。
利用空参构造创建的对象,默认表示系统当前时间。
利用有参构造创建的对象,表示指定的时间。

package Date;
import java.util.Date;

public class Demo1 {
    public static void main(String[] args) {
        //1.创建对象表示一个时间
        Date d1 = new Date();

        //2.创建对象表示一个指定的时间
        Date d2 = new Date(0L);
        System.out.println(d2);

        //3.setTime 修改时间对象中的毫秒值
        //1000毫秒=1秒
        d2.setTime(1000L);
        System.out.println(d2);

        //4.getTime 获取时间对象中的毫秒值
        long time = d2.getTime();
        System.out.println(time);

    }
}

2.SimpleDateFormat

1.概述
  • 格式化:把时间变成我们喜欢的格式。
  • 解析:把字符串表示的时间变成Date对象。
2.方法

请添加图片描述

3.格式

请添加图片描述
API帮助文档:
请添加图片描述

package Date;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.ParseException;

public class Demo2 {
    public static void main(String[] args) {
        /*
        public SimpleDateFormat()                   默认格式
        public SimpleDateFormat(String pattern)     指定格式
        public String format(Date date)              日期转字符串
        public Date parse(String source)            字符串转日期
        */
        //1.定义一个字符串表示时间
        String time = "2022-12-12 12:12:12";
        //2.利用空参构造创建SimpleDateFormat对象
        //细节:
        //1.格式必须要和字符串的时间格式一致
        //2.格式中如果出现了月份,则月份必须要写m
        //3.格式中如果出现了分钟,则分钟必须要写m
        //4.格式中如果出现了秒,则秒必须要写s
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date d = sdf.parse(time);
            System.out.println(d.getTime()); //1670876332000
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

    public static void method() {
        //1.利用空参构造创建SimpleDateFormat对象
        SimpleDateFormat sdf = new SimpleDateFormat();
        //2.创建日期对象
        Date d = new Date();
        //3.调用format方法,把日期转成字符串
        String s = sdf.format(d);
        System.out.println(s);

        //4.利用带参构造创建SimpleDateFormat对象
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //5.调用format方法,把日期转成字符串
        String s2 = sdf2.format(d);
        System.out.println(s2);
    }

}

3.Calendar

1.概述
  • Calendar代表了系统当前时间的日历对象,可以单独修改、获取时间中的年,月,日
  • 细节:Calendar是一个抽象类,不能直接创建对象。
  • 获取对象的方法:public static Calendar getInstance() 获取当前时间的日历对象
2.方法

请添加图片描述
字段:属性,成员变量。比如:年,月,日

细节-----获取日历对象:

  • 底层原理:会根据系统的不同时区来获取不同的日历对象,默认表示当前的时间。
  • 把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中。
  • 月份:范围0~11,如果获取出来的是0,那么实际上是1月
  • 星期:在老外的眼里,星期日是一周中的第一天。

2.JDK8新增的时间相关类

请添加图片描述

1.Date类

1.ZoneId:时区

请添加图片描述

2.Instant:时间戳

请添加图片描述

3.ZoneDateTime:带时区的时间

请添加图片描述
细节:

  • JDK8新增的时间对象都是不可变的
  • 如果我们修改了,减少了,增加了时间
  • 那么调用者是不会发生改变的,会产生一个新的时间

2.日期格式化类

DateTimeFormatter:时间的格式化和解析

请添加图片描述

3.日历类

1.LocalDate:年、月、日
2.LocalTime:时、分、秒
3.LocalDateTime:年、月、日、时、分、秒
4.统一

请添加图片描述
请添加图片描述

4.工具类(了解)

1.Duration:时间间隔(秒,纳秒)
2.Period:时间间隔(年,月,日)
3.ChronoUnit:时间间隔(所有单位)

3.包装类

基本数据类型对应的引用类型
就是都是new出来的对象。
请添加图片描述
请添加图片描述

1.Integer

1.获取对象

请添加图片描述
范围:-128~127
底层原理:

  • 因为在实际开发中,-128~127之间的数据,用的比较多。
  • 如果每次都是new对象,就太浪费内存了
  • 所以,提前把这个范围之内的每一个数据都创建好对象
  • 如果要用到了就不会创建新的,而是返回已经创建好的对象。
2.自动装箱和自动拆箱

JDK5的时候提出了一个机制:自动装箱和自动拆箱

  • 自动装箱:把基本数据类型自动变为其对应的包装类。
  • Integer i1 = 10;
  • 自动拆箱:把包装类自动地变成其对象的基本数据类型。
  • Integer i2 = new Integer(10);
  • int i = i2;

2.成员方法请添加图片描述

拓展:

  • Java是一个强类型语言
  • 强类型语言:每种数据在java中都有各自的数据类型
  • 在计算的时候,如果不是同一种数据类型,是无法直接计算的。

细节:

  • 在类型转换的时候,括号中的参数只能是数字不能是其他,否则代码会报错。
  • 8种包装类当中,除了Character都有对应的parseXxx的方法,进行类型转换。

相关文章:

  • 大朗镇网站建设百度搜索引擎优化怎么做
  • 网站权重如何提高友情链接导航
  • 小米手机官方网站网站联盟营销
  • java与php开发网站百度号码认证
  • 健身网站开发背景及意义360建站和凡科哪个好
  • 如何自己做自己的网站百度官方推广平台
  • npm install -g @vue/cli 方式已经无法创建VUE3项目
  • 论文阅读_LMLPA_用大语言模型实现人格评测
  • 我的世界forge模组开发(9)——自定义投掷物实体
  • c#事件案例与分析
  • 解决电脑问题(10)——桌面问题
  • js逆向-某网站cookies生成逻辑分析_2025-03-08
  • element-plus中table组件的使用
  • 【2025软考高级架构师】——软件工程(2)
  • Java的数据类型
  • 小程序 wxml 语法 —— 41列表渲染 - 进阶用法
  • 一个基于.NET Core开源、跨平台的仓储管理系统
  • 【学习笔记】【DeepSeek AI 医生】2-2 AI家庭医生课程内容介绍
  • 扩散模型中三种加入条件的方式:Vanilla Guidance,Classifier Guidance 以及 Classifier-Free Guidance
  • 数据库【使用MySQL创建第一个表格】
  • 快速安装torch的方法
  • 服务器上通过ollama部署deepseek
  • 004-获取CPU占用率
  • 核货宝:外贸订货系统本地化部署的重要性
  • 发展史 | 深度学习 / 云计算
  • 蓝桥杯省赛—dfs算法