news 2026/6/10 2:17:40

Day15—常用API-3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day15—常用API-3

JDK7时间

Date

时间相关知识点:

Date时间类:

java.util.Date`类 表示特定的瞬间,精确到毫秒。

两个构造函数

  • public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

常用方法 :

  • public long getTime()把日期对象转换成对应的时间毫秒值。
  • public void setTime(long time)把方法参数给定的毫秒值设置给日期对象

SimpleDateFormat

  • 格式化:按照指定的格式,把Date对象转换为String对象。
  • 解析:按照指定的格式,把String对象转换为Date对象。

构造方法与常用方法:

常用的格式规则为:

标识字母(区分大小写)含义
y
M
d
H
m
s

Calendar

Calendar代表了系统当前时间的日历对象,可以单独修改、获取时间中的年、月、日

细节:Calendar是一个后向类,不能直接创建对象

两种方式可以获取GregorianCalendar对象:

  • 直接创建GregorianCalendar对象;
  • 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象

Calendar常用方法:

细节点:日历类中月份的范围:0~11 日历类中星期的特点:星期日十一周中的第一天

JDK8时间相关类

ZoneId 时区

Instant 时间戳

ZoneDateTime 带时区的时间

DateTimeFormatter 用于时间的格式化和解析

LocalDate年月日、LocalTime时分秒、LocalDateTime年月日时分秒

LocalDateTime可以转换为LocalDate和LocalTime

Duration(秒,纳,秒)、Period 时间间隔(年,月,日)、ChronoUnit 时间间隔(所有单位)

ChronoUnit

// 当前时间 LocalDateTime today = LocalDateTime.now(); System.out.println(today); // 生日时间 LocalDateTime birthDate = LocalDateTime.of(2000, 1, 1,0, 0, 0); System.out.println(birthDate); System.out.println("相差的年数:" + ChronoUnit.YEARS.between(birthDate, today)); System.out.println("相差的月数:" + ChronoUnit.MONTHS.between(birthDate, today)); System.out.println("相差的周数:" + ChronoUnit.WEEKS.between(birthDate, today)); System.out.println("相差的天数:" + ChronoUnit.DAYS.between(birthDate, today)); System.out.println("相差的时数:" + ChronoUnit.HOURS.between(birthDate, today)); System.out.println("相差的分数:" + ChronoUnit.MINUTES.between(birthDate, today)); System.out.println("相差的秒数:" + ChronoUnit.SECONDS.between(birthDate, today)); System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate, today)); System.out.println("相差的微秒数:" + ChronoUnit.MICROS.between(birthDate, today)); System.out.println("相差的纳秒数:" + ChronoUnit.NANOS.between(birthDate, today)); System.out.println("相差的半天数:" + ChronoUnit.HALF_DAYS.between(birthDate, today)); System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate, today)); System.out.println("相差的世纪(百年)数:" + ChronoUnit.CENTURIES.between(birthDate, today)); System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate, today)); System.out.println("相差的纪元数:" + ChronoUnit.ERAS.between(birthDate, today));

包装类

包装类:基本数据类型对应的引用类型-对象

基本类型对应的包装类(位于java.lang包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

如何获取包装类对象:直接赋值

Integer成员方法:

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

练习:

自己实现parseInt方法的效果,将字符串形式的数据转成整数。要求:字符串中只能是数字不能有其他字符最少一位,最多10位日不能开头

public class Test2 { public static void main(String[] args) { /* 自己实现parseInt方法的效果,将字符串形式的数据转成整数。要求: 字符串中只能是数字不能有其他字符最少一位,最多10位日不能开头 */ //1.定义一个字符串 String str = "123"; //2.校验字符串 //习惯:会先把异常数据进行过滤,剩下来就是正常的数据。 if (!str.matches("[1-9]\\d{0,9}")) { //错误的数据 System.out.println("数据格式有误"); } else { //正确的数据 System.out.println("数据格式正确"); //3.定义一个变量表示最终的结果 int number = 0; //4.遍历字符串得到里面的每一个字符 for (int i = 0; i < str.length(); i++) { int c = str.charAt(i) - '0';//把每一位数字放到number当中 number = number * 10 + c; } System.out.println(number); System.out.println(number + 1); } } }

判断任意的一个年份是闰年还是平年要求:用JDK7和JDK8两种方式判断提示:二月有29天是闰年一年有366天是闰年

public class Test5 { public static void main(String[] args) { /* 判断任意的一个年份是闰年还是平年要求:用JDK7和JDK8两种方式判断提示: 二月有29天是闰年一年有366天是闰年 */ //jdk7 //我们可以把时间设置为2000年3月1日 Calendar c = Calendar.getInstance(); c.set(2000, 2, 1); //月份的范围:0~11 //再把日历往前减一天 c.add(Calendar.DAY_OF_MONTH, -1); //看当前的时间是28号还是29号? int day = c.get(Calendar.DAY_OF_MONTH); System.out.println(day); //jdk8 //月份的范围:1~12 //设定时间为2000年的3月1日 LocalDate ld = LocalDate.of(2001, 3, 1); //把时间往前减一天 LocalDate ld2 = ld.minusDays(1); //获取这一天是一个月中的几号 int day2 = ld2.getDayOfMonth(); System.out.println(day2); //true:闰年 //false:平年 System.out.println(ld.isLeapYear()); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 23:28:37

(100分)- 幻方修复(Java JS Python)

(100分)- 幻方修复(Java & JS & Python) 题目描述 幻方(Magic Square)是一个由1~N,共N个整数构成的N*N矩阵,满足每行、列和对角线上的数字和相等。 上回你已经帮助小明将写错一个数字的幻方进行…

作者头像 李华
网站建设 2026/6/8 18:48:37

STC15F204EA概述

特性:增强型 8051 CPU,1T,单时钟/机器周期,速度比普通8051快6-12倍工作电压:STC15F204EA 系列工作电压:5.5V - 3.8V(5V 单片机)STC15L204EA 系列工作电压:3.6V - 2.4V(3V…

作者头像 李华
网站建设 2026/6/8 20:07:59

计算机小程序毕设实战-基于springboot+小程序的高校生活互助平台小程序基于SpringBoot的高校报修与互助平台小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/9 20:05:27

数据产品视频领域:内容理解与智能推荐算法

数据产品视频领域:内容理解与智能推荐算法 关键词:视频内容理解、智能推荐算法、深度学习、计算机视觉、自然语言处理、多模态学习、个性化推荐 摘要:本文深入探讨数据产品视频领域中的内容理解与智能推荐算法。我们将从视频内容理解的技术原理出发,分析如何通过深度学习技…

作者头像 李华
网站建设 2026/6/9 21:16:11

基于Spring Boot的水产品安全信息管理系统

🍅 作者主页:Selina .a 🍅 简介:Java领域优质创作者🏆、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…

作者头像 李华
网站建设 2026/6/8 19:14:16

CANN分布式训练:从单机到千卡集群的弹性扩展实战

CANN组织链接:https://atomgit.com/cann ops-nn仓库链接:https://atomgit.com/cann/ops-nn 当千亿参数大模型训练因通信瓶颈扩展效率仅38%,当工程师耗费数月调试分布式脚本却频繁遭遇节点故障,当“千卡训练”沦为少数巨头的专属游…

作者头像 李华