关于日期的工具类

1、java.util.Date

1)Date工具类用途

  • 获取当前日期: Date dt = Date();
  • 根据时间戳获取指定日期: Date dt = Date(long millisec);
  • 比较日期大小

2)Date对象格式

Sat Feb 03 14:48:47 CST 2018

3)格式化日期

Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为: " + ft.format(dNow));
//以上实例编译运行结果如下:
//当前时间为: 2018-09-06 10:16:34

4)比较日期大小

序号方法描述
1boolean after(Date date若当调用此方法的Date对象在指定日期之后返回true,否则返回false。
2boolean before(Date date)若当调用此方法的Date对象在指定日期之前返回true,否则返回false。
3boolean equals(Object date)当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。
4long getTime( )返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
5void setTime(long time)用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。

2、java.util.Calendar

1)Calendar工具类用途

  • 设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟
  • 在日期的特定部分加上或者减去值

2)Calendar类对象字段

Calendar类中用以下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想

常量描述
Calendar.YEAR年份
Calendar.MONTH月份
Calendar.DATE日期
Calendar.DAY_OF_MONTH日期,和上面的字段意义完全相同
Calendar.HOUR12小时制的小时
Calendar.HOUR_OF_DAY24小时制的小时
Calendar.MINUTE分钟
Calendar.SECOND
Calendar.DAY_OF_WEEK星期几

3)Calendar类常用方法

序号方法描述
1

Calendar cal = Calendar getInstance(TimeZone zone, Locale aLocale)

获得一个日历,zone和aLocale表示时区和语言环境,不传取默认值

2cal.computeTime()将日历的时间域作为毫秒值
3cal.setTime(Date date)用给定的 Date 设置 Calendar 的当前时间
4cal.set(int year,int month,int date,int hour,int minute,int second)设置年、月、日期、时、分和秒域的数值。 保留其它域上次的值。 如果不需要保留,首先调用 clear
5cal.setTimeInMillis(long millis)用给定的时间戳设置 Calendar 的当前时间
6cal.isSet(int field)确定给定的时间域是否设置了数值
7cal.get(int field)获得给定时间域的值
8cal.getTime()获得日历的当前时间
9cal.getTimeInMillis()获得日历的时间戳
10

cal.clear()

cal.clear(int field)

11cal.complete()填充时间域列表中所有未设置的域
12

cal.equals(Object obj)

cal.before(Object when)

cal.after(Object when)

13cal.add(int field,int amount)日期的计算功能。 按照日历的规则,将指定 ( 带符号的 ) 数量的时间添加到给定的时间域。 例如,从日历的当前时间减 5 ,可调用:

add(Calendar.DATE, -5)

更多函数参考:Java Calendar所有方法

4)Calendar类的set方法示例

Calendar c1 = Calendar.getInstance();

//把Calendar对象c1的年月日分别设这为:2009、6、12
c1.set(2009, 6, 12);
//如果只设定某个字段,例如把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算
c1.set(Calendar.DATE,10);
//把c1对象代表的年份设置为2008年,其他的所有数值会被重新计算
c1.set(Calendar.YEAR,2008);
//Add设置:把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, 10);
//把c1对象的日期减去10,也就是c1也就表示为10天前的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, -10);

5)Calendar类的set方法示例

Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);

 6)Calendar类实战应用

JAVA根据特定日期获取日,月,年的开始时间与结束时间_世俗的大尾巴也熊的博客-CSDN博客

3、cn.hutool.core.date.DateUtil类

用途:时间偏移量获取,使用场景包含但不限于获取年,季度,月,周,日,时,分,秒,毫秒的开始时间和结束时间

6hutool实战:DateUtil(时间工具类)-时间偏移量获取_小虚竹的博客-CSDN博客_dateutil.truncate


版权声明:本文为sanmi8276原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。