Date为核心的一些有关日期的类(源码学习)

1;先看一下一些与Date常见的类;
这里写图片描述
2;java.util.Date;

The class <code>Date</code> represents a specific instant in time, with millisecond precision
//其源码介绍;
这个Date类代表一个明确的具体的瞬间时间,用毫秒精确表示;

正如源码所说;它的对象表示一个特定的瞬间对象,精确到毫秒;
Java中时间的表示,说白了也就是数字,是从标准纪年1970.1.1.0点开始到某个时刻的毫秒数;类型是long类型;并且2的63次方足够表示了;;

注意这里是util类中的,而不是sql类的;
那个long类型的数;在源码中的存在;
这里写图片描述
关于其初始化;
这里写图片描述
方法;
这里写图片描述
这里写图片描述
这里写图片描述

Date类的核心就是那个long类型的数;

3;DateFormat类和SimpleDateFormat类;
3.1;DateFormat类;是继承与java.text类;
这里写图片描述
但是可以使用父类引用指向子类对象;

public class SimpleDateFormat extends DateFormat {//子类就是SimpleDateFormat

3.2;SimpleDateFormat类;
3.2.1;这个类的作用
这里写图片描述
因此;这个类的工作就是完成字符串和时间对象之间的转化;
——–SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化

3.2.2;构造方法;其作用;
一般使用传入字符串;意思就是日期格式;

SimpleDateFormat(String pattern) 
          用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

而这个字符串就是日期格式;
DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);
这里写图片描述
父类引用指向子类对象;则只能访问父类的成员了;
这里写图片描述

3.3;最后还是回到DateFromat类;原来还是要用DateFromat类的方法;尴尬了;还以为他只是一个抽象类生成一下SimpleDateFormat类,用这个类来实现转化了,原来他只是一个产生时间格式字符串的格式。真晕死;汗。。。。最后还是要回到DateFromeat来,
常用方法;两个;format()和parse();
这里写图片描述
这里写图片描述
这里写图片描述

4;Calendar;和GreGorianCalendar
4.1;Calendar类
这里写图片描述
这里写图片描述
同样它也是abstract抽象类;但是与Dateformat类一样,只是有一个子类来实现,并且还是主要用的Calendar类中的方法;
这里写图片描述
这里写图片描述

//因为Calendar是个抽象类,当要建一个对象的时候new它的子类GregorianCalendar类
//这样来创建对象;
Calendar  df = new GregorianCalendar();

/*
GregorianCalendar() 默认构造方法
          在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar对象,
        并且可以使用Calendar引用指向;调用Calendar类的成员。*/

方法;
set();方法,设置一个日历时间,好多年好多月好多日…….看起调用的set方法;其好多重载方法;
这里写图片描述
看到这个方法没,其实我们也看单独拿出来初始化;
public void set(int field, int value)//field是日历类型;YEAR代表年;
是这样设,如果没有设定的元素打不会用0代替而是用当前时间代替;
这里写图片描述
可以设置日期之后,就可以与来与Date类联系起来了;这里有两个方法;
这里写图片描述
这里写图片描述
返回日历中的元素get()方法;
这里写图片描述

还可以直接将Date对象放进去直接变成日历形式;
使用;set(new Date)是可以的;
还有一个方法,就是增加日历元素的值;指定年则可以在年的基础上加多少年;
这里写图片描述
要减少则只需将那个amount变成负值就可以;
这里写图片描述

关于时间日期的就暂时到这里的,
后面会编写一个小程序;可视化日历;就是使用上面所介绍的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值