一、JDK1.8之前的日期时间API
返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
2.java.util.Date类与java.sql.Date类
1.两个构造器的使用
构造器一:Date():创建一个对应当前时间的Date对象
构造器二:创建指定毫秒数的date对象
2.两个方法的使用
>toString():显示当前的年、月、日、时、分、秒。
>getTime(): 获取当前Date对象对应的时间戳(毫秒数)。
3.java.sql.Date对应着数据库中的日期类型的变量
>如何实例化
>如何将java.util对象转换成java.sql.Date对象
sql.Date —>util.Date对象SimpleDateFormat的使用:
SimpleDateFormat对日期Date类的格式化和解析:
1.两个操作
1.1 格式化 :日期 —> 字符串
1.2 解析 :格式化的逆过程,字符串 —> 日期
2.SimpleDateFormat的实例化:new + 构造器
//***************按照指定的方式格式化和解析:调用带参的构造器*******************
// SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");//Sun Jan 02 20:37:00 CST 2022
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//2022-01-02 08:51:12
//格式化
String format1 = sdf1.format(date);
System.out.println(format1);
//解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数实现)
//否则,抛异常
Date date2 = sdf1.parse("2023-01-02 08:51:12");
System.out.println(date2);
小练习 :
/*
练习一:字符串"2020-09-08"转换为java.sql.Date
练习二:"三天打鱼两天晒网" 1990-01-01
举例:2020-09-08 ? 总天数
总天数 % 5 ==1,2,3 :打渔
总天数 % 5 ==4,0 :晒网
总天数的计算?
方式一:(date2.getTime() - date1.getTime())/(1000*60*60*24) + 1
方式二:1990-01-01 ---> 2019-12-31 + 2020-01-01 ---> 2020-09-08
*/
@Test
public void testExer() throws ParseException {
String birth="2020-09-08";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyy-MM-dd");
Date date = sdf1.parse(birth);
// System.out.println(date);
java.sql.Date birthDate = new java.sql.Date(date.getTime());
System.out.println(birthDate);
}
4.