1. Date类
Date类代表了一个特定的时间,精度为毫秒。
常用构造方法:
//无参构造方法,返回当前时间
public Date();
//有参构造方法,构造时传入一个毫秒值表示的时间。
public Date(long date);
Date类中已经重写了toString方法,打印的时候可以直接传入对象名。
System.out.println(date01);//Wed Sep 29 14:00:41 CST 2021
常用成员方法:
Date类中包含了大量的已过时的方法,目前常用的方法如下:
public long getTime();// 返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数。
public boolean after(Date when);// 测试此日期是否在指定日期之后。
public boolean before(Date when);// 测试此日期是否在指定日期之前。
2. SimpleDateFormat类
SimpleDateFormat是一个具体的类,用于以根据时区不同的方式格式化和解析日期。 它允许格式化(日期文本),解析(文本日期)和规范化。
上面已经提到,Date类中重写的toString方法已经能够显示当前的日期,但是是按照欧美国家显示日期的传统显示的,这对于我们来说会显得比较晦涩。
//构造方法
public SimpleDateFormat();
public SimpleDateFormat(String pattern);
如果使用无参构造方法,则会构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。 使用有参构造在构造时传入特定的参数就能够对时间进行自由的格式化。这就能够按照我们想要的方式去显示时间。
例如构造一个simpleDateFormat类,按照如下方式进行格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
成员方法:
1.format方法
public String format(Date date);
//调用方法
System.out.println(sdf.format(date));//2021年09月29日 14:36:17
//date对象是用毫秒值表示的时间,我们向方法中传入一个长整型的毫秒值,也能够正确运行得到一个结果。
System.out.println(sdf.format(1212312137l));//1970年01月15日 08:45:12
2.parse方法,可以将一个“yyyy-MM-dd HH:mm ss”字符串转换为Date类。
public Date parse(String text);
手动进行日期的比较就会用到这个方法。
3.Calender类
Calendar类是一个抽象类,解决了日期不能国际化的问题。
由于Calender是一个抽象类,因此不能直接实例化一个对象。直接通过Calendar类中的静态方法getInstance获取一个Calender对象。
Calendar rightNow = Calendar.getInstance();
- public int get(int field); 返回给定日历字段的值。
// 获取年
int year = rightNow.get(Calendar.YEAR);
// 获取月,注意是0-11表示1-12月
int month = rightNow.get(Calendar.MONTH);
// 获取日
int date = rightNow.get(Calendar.DATE);
//获取几点
int hour=rightNow.get(Calendar.HOUR_OF_DAY);
- public void set(int field, int value) ;将给定的日历字段设置为给定的值。
rightNow.set(Calendar.YEAR,2011); //设置当前时间为2011年
- public abstract void add(int field, int amount); 根据日历的规则,将指定的时间量添加或减去给定的日历字段。
rightNow.add(Calendar.YEAR,11);//在当前基础上加11年
rightNow.add(Calendar.YEAR,-11);//在当前基础上减11年
- public Date getTime(); 返回表示 Calendar的时间值的 Date对象。
Date d = rirhtNow.getTime();
- int getActualMaximum(int field); 给定此 Calendar的时间值,返回指定日历字段可能具有的 Calendar 。
例如当不确定某年的某一个月有多少天时可以使用此方法。
总结:SimpleDateFormat类与Calender类中均有与Date类转化的方法。Date类中许多已经过时的方法都在这两个类中重新体现了。