java中Date类的使用
Date类位于java.util中,调用时采用 import java.util.Date
一、构造方法
(一)Date()无参构造方法
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) throws ParseException {
//无参数构造方法,可以获取系统当前时间(精确到毫秒级别)
Date nowDate = new Date();
//直接打印输出 Sat Apr 10 11:54:07 CST 2021
//说明Date类已经重写toString()方法
System.out.println(nowDate);//输出:Sat Apr 10 11:54:07 CST 2021
//构造一个格式化Date对象
//依赖SimpleDateFormat类的format()方法,位于java.text包下
//import java.text.SimpleDateFormat
/*
常用格式化:
yyyy 年(4位)
MM 月(2位)
dd 日
HH 时
mm 分
ss 秒
SSS 毫秒(3位)
注意:在SimpleDateFormat类的构造函数中,y M d H m s S不可使用,其他可随意使用
*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String nowTimeStr = sdf.format(nowDate);
System.out.println(nowTimeStr); //2021-04-10 11:54:07 917
//已知一个时间字符串,同样可以使用SimpleDateFormat类的方法parse()返回一个Date对象
String time = "2008-08-08 08:08:38 888";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//构造SimpleDateFormat对象时传入字符串要与已知时间字符串(time)相同
Date parseTime = sdf1.parse(time);//该方法会抛出ParseException异常,需要抛出或try...catch
System.out.println(parseTime);//Fri Aug 08 08:08:38 CST 2008
}
}
(二)Date(long date)有参数构造
import java.util.Date;
public class DateTest02 {
public static void main(String[] args) {
//获取1970年1月1日 00:00:00 000 到当前系统时间的总毫秒数
long time = System.currentTimeMillis();
System.out.println(time);
//有参构造方法,传入一个数字(毫秒),返回一个自1970年1月1日 00:00:00 000起经过传入时间数的一个时间
Date date = new Date(1);
System.out.println(date);//Thu Jan 01 08:00:00 CST 1970,由于北京时间为东八区时间,因此为8时
Date nowDate = new Date(time);
System.out.println(nowDate);//Sat Apr 10 12:09:45 CST 2021
}
}