在做项目的时候,可能经常会需要各种类型日期的转换,不同的格式,不同的类型,让好多同学直发蒙!现在我们就讲讲几种常用的类型:
【1】java.util.Date
创建对象:
Date date=new Date();
System.out.println(date);
//结果:Thu Aug 02 09:33:02 CST 2018 。这个格式不好看,之后会讲解格式转换
常用方法:
long time=date.getTime();
//结果:1533173618546L---距离1970年1月1日0时0分0秒的毫秒数
PS:Date也有好多过期方法,但是用的不多,在这里就不提了占用篇幅
【2】java.sql.Date
创建对象:sql.Date没有空构造器,我们用带参构造器创建:
Date date=new Date(1533173618546L);//参数要传入一个long类型的数
System.out.println(date);//2018-08-02
常用方法:
Date date2=Date.valueOf("2016-08-24");//String类型转化为java.sql.Date
System.out.println(date2);
PS:
java.sql.Date extends java.util.Date ----> util.Date是sql.Date的父类!
【3】java.sql.Date和java.util.Date相互转化:
//sql---->util
java.util.Date d=new java.sql.Date(1472025220343L);
System.out.println(d);//子类赋给父类 ,直接转换就行了!
//util--->sql
java.sql.Date d2=new java.sql.Date(new java.util.Date().getTime());
System.out.println(d2);
【4】String----Date
DateFormat df=new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
//DateFormat是抽象类 ,抽象类不可以直接创建对象,所以我们创建子类的对象try {
java.util.Date d1=df.parse("1890-4-4 9-8-7");//这个格式必须按照上面给出的格式进行转化否则出错 } catch (ParseException e) {
e.printStackTrace();//为啥抛出异常的 不是随便的字符串都可以可以转化为日期吗的}
日期格式表:
【5】Date---String
DateFormat df=new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
java.util.Date da=new java.util.Date();
//法1.System.out.println("a1"+da);
//法2.System.err.println("a2"+da.toLocaleString());
//法3.String str=df.format(da);
System.out.println("a3"+str);
【6】String-->Date--->Calendar
//创建Calendar对象Calendar cal=Calendar.getInstance();
//String-->Datejava.sql.Date d=java.sql.Date.valueOf("1999-3-6");
//Date--->Calendarcal.setTime(d);
System.out.println(cal);