java.util.Date类
精确秒
6个构造方法,4个已经过时
Date() 系统时间
Date(long date) 分配date对象并初始化,以表示从基准事件,即1970年1月1日 00:00:00来指定毫秒数
Date(String s) 已过时,由DateFormat.parse(String s)取代
//1.使用无参
Date d1 = new Date();
System.out.println("d1 = " + d1); // d1 = Wed Apr 28 17:16:04 CST 2021
//2.使用毫秒数, 东八区,差了8小时,1秒钟
Date d2 = new Date(1000); //Jan 01 08:00:01 CST 1970
System.out.println(d2);
成员方法
getYear(); //当前年-1900年的值
getMonth(); //返回的值 从0-11
getDate(); //返回值从 1-31之间
getDay(); // 0=sunday, 1=monday, 2=tuesday
getTime(); //返回从1970年至今的毫秒数
setTime(毫秒数); //把date设置为距离1970年来的
long time = d1.getTime();
System.out.println(time); //1619601628635
//把d1设置为1970-1-1 + 2秒
d1.setTime(2000);
System.out.println(d1); //Thu Jan 01 08:00:02 CST 1970
java.sql.Date
继承于java.util.Date
java.sql.Date: 年-月-日
java.util.Date: 年-月-日-时-分-秒
java.sql.Date date = new java.sql.Date(1619603558468L);
System.out.println(date);
valueOf(“2020-1-1”)
java.sql.Date date1 = java.sql.Date.valueOf("2020-1-1");
System.out.println(date1); //2020-1-1
联系
java.sql.Date, java.util.Date相互转化
util.date => sql.date
java.sql.Date sqlDate = new java.sql.Date(new Date().getTime());
System.out.println(sqlDate); //2021-04-28
sql => util , sql继承于util
java.sql.Date sd = new java.sql.Date(1000L);
Date date = sd;
System.out.println(date);
java.sql.Timestamp
精确到毫秒
Timestamp ts = new Timestamp(1000L);
System.out.println(ts); //1970-01-01 08:00:01.0
日期格式化
String => Date
- 使用
java.sql.Date.valueOf("2020-1-1")
//DateFormat是一个抽象类
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
String date = df.format(new Date());
System.out.println(date); //2021-04-28 06-18-34
Date => String
//DateFormat是一个抽象类
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
try {
Date date = df.parse("2020-1-1 1-1-1");
} catch (Exception e) {
e.printStackTrace();
}