时间表现多样化 -- Java时间类

时间表现多样化 -- Java时间类一 主要结构图 一 java util Date 1 1 构造函数 排除已经被标记废弃方法剩余两种构造函数 无参构造默认获取当前系统时间构建 date 表示 1970 01 01 开始计算的毫秒数 赋值给 fastTime 属性记录 1 2 表现形式 直接输出结果是计算机才能看懂的时间表达式

大家好,我是讯享网,很高兴认识大家。
一:主要结构图

Date时间结构图
讯享网

一:java.util.Date
1.1 构造函数


排除已经被标记废弃方法剩余两种构造函数

  • 无参构造默认获取当前系统时间构建
  • date表示1970-01-01开始计算的毫秒数,赋值给fastTime属性记录
1.2 表现形式

直接输出结果是计算机才能看懂的时间表达式,需要注意的是这个时间精确度是到毫秒级别

Tue Apr 23 13:41:22 CST 2019 

讯享网
1.3 主要方法

在这里插入图片描述
方法围绕属性fastTime展开,该属性记录实例化时亦或是后期通过setTime()注入的距离1970-01-01日期毫秒值。java.util.Date提供了一组操作该属性的方法
在这里插入图片描述
java.util.Date中可以通过after()、before()比较时间前后,返回值为一个boolean类型

二:java.sql.Date
2.1 构造函数

在这里插入图片描述
调用父类java.util.Date有参构造函数,java.sql.Date没有无参构造。注入参数与java.util.Date一致表示距离1970-01-01的毫秒数

2.2 表现形式

表现形式相较于java.util.Date更加直观,但是精准度只有到年月日

讯享网 Date date = new Date(1711_1111_1111_1L); System.out.println(date); 结果:2024-03-22 
2.3 主要方法

相对于父类java.util.Date来讲新增方法toLocalDate(),将java.sql.Date转换为JDK1.8提供的类LocalDate。LocalDate接下来详细解析
在这里插入图片描述

三:Time
3.1 构造函数

在这里插入图片描述
构造函数与java.sql.Date一致,采用父类有参构造函数

3.2 表现形式

与java.sql.Date只记录年月日相对应的是这个类记录时分秒

 Time time = new Time(System.currentTimeMillis()); System.out.println(time); 结果:14:01:23 
3.3 主要方法

与java.sql.Date类似的是提供转换为LocalDate的方法
在这里插入图片描述

四:TimeStamp
4.1 构造函数

在这里插入图片描述
不管它的操作是什么样的,反正它的参数就是距离1970-01-01日期的毫秒数

4.2 表现形式
讯享网 Timestamp timestamp = new Timestamp(System.currentTimeMillis()); System.out.println(timestamp); 结果:2019-04-23 14:14:44.666 

日期精度与java.util.Date一致,展现形式与java.sql.Date一致

4.3 主要方法

在这里插入图片描述
Timestamp类扩展了针对毫秒的操作,可以转换为LocalDateTime,该类在后面详细介绍

五:SimpleDateFormat

见名之意,该类主要作用是做Date的格式化与解析工作,Date包括上述四个日期类

5.1 日期格式化解示例
  • 根据日期格式实例化SimpleDateFormat
  • 调用format()格式化、parse()解析
  • 解析过后的时间表现形式与java.util.Date一致
 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SS"); String format = sdf.format(date); // 格式化 Date parse = sdf.parse(format); // 解析 System.out.println(format); System.out.println(parse); 
5.2 日期编码
  • y:年
  • M:月
  • d:日
  • h:时
  • H:小写h表示12小时制、大写表示24小时制
  • m:分
  • s:秒
  • S毫秒
六:Calendar
6.1 实例化

Calendar类为一个抽象类,实例化方法getInstance()借助GregorianCalendar子类完成实例化
在这里插入图片描述

6.2 主要方法

Calendar个人理解为Date时间计算工具类,系列方法围绕时间计算展开,例如每周、每月、每年的第几天等计算。get()传入int参数,该参数内容维护在Calendar常量中,根本上该参数为fields[]数组下标,按照下标获取数据

常用下标:

讯享网 public final static int YEAR = 1; // 年 public final static int MONTH = 2; // 月(获取数据+1) public final static int WEEK_OF_YEAR = 3; // 年内第几周 public final static int WEEK_OF_MONTH = 4; // 月内第几周 public final static int DATE = 5; // 几号 public final static int DAY_OF_MONTH = 5; // 几号 public final static int DAY_OF_YEAR = 6; // 年内第几天 public final static int DAY_OF_WEEK = 7; // 周几(获取数据-1) public final static int HOUR = 10; // 12小时计时小时 public final static int HOUR_OF_DAY = 11; // 24小时计时小时 public final static int MINUTE = 12; // 分钟 public final static int SECOND = 13; // 秒 public final static int MILLISECOND = 14; // 毫秒 

除了时间节点属性获取之外涉及到的时间操作就是年月日等时间的加、减等通过add()方法

  • 第一个参数使用上述常量表示需要对什么数据进行操作
  • 第二个参数正负数表示加减
 Calendar calendar = new Calendar.Builder().setInstant(new Date()).build(); calendar.add(Calendar.DATE,-1); 
七:LocalDate

JDK1.8新出的关于日历时间表示类,通过这个类可以轻松完成对于日历时间操作

7.1 创建对象

该类并未提供相应的构造函数,只有使用now()、of()、parse()、等方法构建对应实例对象
在这里插入图片描述

7.2 API操作

操作只需要看一下API就可以了,方法名字十分粗暴

小讯
上一篇 2025-01-25 15:56
下一篇 2025-02-25 08:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/68696.html