news 2026/4/16 13:04:27

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/4/12 16:47:13

(100分)- 二元组个数(Java JS Python)

(100分)- 二元组个数(Java & JS & Python)题目描述给定两个数组a,b,若a[i] b[j] 则称 [i, j] 为一个二元组,求在给定的两个数组中,二元组的个数。输入描述第一行输入 m 第二行输入m个数&#xff0…

作者头像 李华
网站建设 2026/4/16 13:01:37

7. 基于三菱PLC的3×4立体车库组态系统

7基于三菱PLC组态王34立体车库组态系统立体车库这玩意儿现在真是遍地开花,但要让12个车位在3层4列里自动腾挪可没看起来那么轻松。今天咱们就唠唠怎么用三菱PLC和组态王搭出个稳定运行的立体车库控制系统,手把手教你避开那些新手必踩的坑。硬件选型&…

作者头像 李华
网站建设 2026/3/19 7:54:17

风储调频技术:真实可靠的储能模型与使用保障

风储调频,储能调频,保证真实,模型如图,保证正常使用 风电场输出功率看天吃饭这事儿,大伙儿都懂。风速突然抽风,电网频率直接坐过山车。这时候储能系统就得像个救火队员,抄起充放电的大锤稳住局…

作者头像 李华
网站建设 2026/3/24 3:00:29

UG NX修补: 曲面和实体缝合

设计过程中可能会遇到一些曲面需要跟实体进行缝合,那么如何实现现曲面和实体缝合呢?

作者头像 李华
网站建设 2026/4/14 8:52:34

P10570 [JRKSJ R8] 网球

记录73 #include<bits/stdc.h> using namespace std; long long gcd(long long a,long long b){return b?gcd(b,a%b):a; } int main(){int T;long long a,b,c,t;cin>>T;while(T--){cin>>a>>b>>c;tgcd(a,b);a/t;b/t;tmin(a,b);if(c%t0) c/t;els…

作者头像 李华
网站建设 2026/4/15 22:17:21

WordPress中if语句判断字段是否存在并输出内容

在WordPress中可以使用if语句判断字段是否存在并输出内容。基于你的需求&#xff0c;三个社交图标的完整判断代码如下&#xff1a; <?php // 微博图标 - 判断 weibo 字段 $weibo of_get_option(weibo); if (!empty($weibo)) : ?><a href"<?php echo esc…

作者头像 李华