第六节 日期工具类

(1)java.util.Date(java官方设置的util包和Date类)

       Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小 时、分、秒、年。

      Date 类有如下两个构造方法:

•  Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使 用该构造方法创建的对象可以获取本地的当前时间。

•  Date(long date):此种形式表示从 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒开 始经过参数 date 指定的毫秒数。

java 对程序限定时间 java 定义时间_servlet

     Date 类的无参数构造方法获取的是系统当前的时间。


     Date 类带 long 类型参数的构造方法获取的是距离 GMT 指定毫秒数的时间,60000 毫秒是一分钟,而 GMT(格林尼治标准时间)与 CST(中央标准时间)相差 8 小时,也就是说 1970 年 1 月 1 日 00:00:00 GMT 与 1970 年 1 月 1 日 08:00:00 CST 表示的是同一时间。 因此距离 1970 年 1 月 1 日 00:00:00 CST 一 分钟的时间为 1970 年 1 月 1 日 00:01:00 CST,即使用 Date 对象表示为 Thu Jan 01 08:01:00 CST 1970。

java 对程序限定时间 java 定义时间_构造方法_02

 (2)java.util.Calendar(java官方设置的util包和Calendar类)

       Calendar 类是一个抽象类,它为特定瞬间与 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日历字段 之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法。


     创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个 getInstance() 方法来获得 Calendar类的对象。getInstance() 方法返回一个 Calendar 对象,其日历字段已 由当前日期和时间初始化。

                           创建方法:Calendar c = Calendar.getInstance();

Calendar 类中定义了许多常量,分别表示不同的意义。

    •  Calendar.YEAR:年份。

    •  Calendar.MONTH:月份。

    •  Calendar.DATE:日期。

    •  Calendar.DAY_OF_MONTH:日期,和上面的字段意义完全相同。

    •  Calendar.HOUR:12小时制的小时。

    •  Calendar.HOUR_OF_DAY:24 小时制的小时。

    •  Calendar.MINUTE:分钟。

    •  Calendar.SECOND:秒。

    •  Calendar.DAY_OF_WEEK:星期几。


注意:如果整型变量 month 的值是 0,表示当前日历是在 1 月份;如果值是 11,则表示当前日历在 12 月 份。

例子1:本月月初


var c = Calendar.getInstance();
System.out.printf("%tF %<tT %<tA %<tp%n",c); //输出 2023-06-07 19:39:58 星期三 下午

//本月月初
c.set(Calendar.MONTH,c.get(Calendar.MONTH));
c.set(Calendar.DATE,1);
c.set(Calendar.HOUR_OF_DAY,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
c.set(Calendar.MILLISECOND,0);
System.out.printf("%tF %<tT %<tA %<tp%n",c); //输出 2023-06-01 00:00:00 星期四 上午

java 对程序限定时间 java 定义时间_servlet_03

 例子2:本月月末

//本月月末
c.set(Calendar.MONTH,c.get(Calendar.MONTH)+1);
c.set(Calendar.DATE,0);
c.set(Calendar.HOUR_OF_DAY,23);
c.set(Calendar.MINUTE,59);
c.set(Calendar.SECOND,59);
c.set(Calendar.MILLISECOND,999);
System.out.printf("%tF %<tT %<tA %<tp%n",c);

java 对程序限定时间 java 定义时间_servlet_04

 完结!!!

给兄弟们留几个小作业

1.分辨1000年~2023年这些年中有哪些是闰年?

2.1000年~2023年些年的生肖属性分别是什么?