Dateformat是抽象的,我们要用它的实现类:SimpleDateFormat类来new对象。它有两个需要掌握的方法:一个是parse 从给定字符串的开始解析文本,生成一个日期(解析)、一个是format 将一个Date格式化为日期/时间字符串(格式化日期)。这里还要用到一个Calendar类:因为api中date的getyear等方法过时了要用Calendar来调用。而Calendar不好new对象我们其用它的方法来返回一个Calendar对象即工厂方法new对象。这里提一点:工厂方法一般都是静态的(我个人理解就是用来获取date的结果的,以及可以对日期进行加减操作)。
下面是我写的一个实例用来理解日期类的:
package cn.hncu.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
Date date=new Date();
long time=date.getTime();
System.out.println(time);
System.out.println(date);
//日期的格式化
DateFormat sdf=new SimpleDateFormat("yyyy-MM-DD HH:mm:ss a");
String strDate=sdf.format(date);
System.out.println(strDate);
//解析输入日期
DateFormat sdf2=new SimpleDateFormat("yyyy-MM-DD");
try {
Date d=sdf2.parse("1995-04-11");
System.out.println(d.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
//Calendar的用法 因为不好直接用它的构造方法 所以用工厂方法来new对象
Calendar c=Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH)+1);//月份是从0开始的 所以输出的时候要+1处理
System.out.println(c.get(Calendar.DAY_OF_MONTH));
c.set(1995, 04, 12);
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.getTime());
System.out.println("--------------");
c.setTimeInMillis(1234567743L);
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH)+1);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println("***************");
c.add(Calendar.MONTH, 5);
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH)+1);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
}
}