JDK8之前的日期时间API
如何将java.util.Date对象转化为java.sql.Date对象?
情况1:
情况2:
下面是对日期时间API的代码总结(挺重要的)
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
//jdk8之前的日期时间的API测试
//1.System类中currentTimeMillis();
//2.java.util.Date和子类java.sql.Date
//3.SimpleDateFormat
//4.Calendar
public class DateTimeTest {
/*3.SimpleDateFormat的使用:SimpleDateFormat对日期Date类的格式化和解析
1.两个操作:
1.1:格式化:日期--->字符串
1.2:解析:字符串--->日期
2.SimpleDateFormat的实例化 */
@Test
public void testSimpleDateFormat() throws ParseException {
//实例化SimpleDateFormat:使用默认的构造器
SimpleDateFormat sdf = new SimpleDateFormat();
//格式化:日期--->字符串
Date date = new Date();
System.out.println(date);
String format = sdf.format(date);
System.out.println(format);
//解析:字符串--->日期
String str = "2022/5/9 下午3:47";//格式得跟上面解析出来的日期相同
Date date1 = sdf.parse(str);
System.out.println(date1);
//***********************
//实例化SimpleDateFormat:使用指定格式的构造器("yyyy-MM-dd hh:mm:ss");
//格式化
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String format1 = sdf1.format(date);
System.out.println(format1);
//解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现)
//否则就会抛异常
Date parse = sdf1.parse("2022-05-09 03:55:38");
System.out.println(parse);
}
/*
练习1:字符串"2020-09-08"转化为java.sql.Date1
使用SimpleDateFormat
*/
@Test
public void test1SimpleDateFormat() throws ParseException {
String str = "2020-09-08";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date parse = simpleDateFormat.parse(str);
//System.out.println(parse);此时得到的是util下的Date
java.sql.Date birthDate = new java.sql.Date(parse.getTime());
System.out.println(birthDate);
}
//练习二:“三天打渔两天晒网” 从1990-01-01开始,那么在xxxx-xx-xx该渔夫是在打渔?晒网?
//举例:2020-09-08? 计算总天数,总天数%5==1,2,3:打渔 总天数%5==0,4:晒网
//计算总天数
//方式1:总天数=(date2.getTime()-date1.getTime())/(1000*60*60*24) + 1
//方式2:1990-01-01 --> 2019-12-31 + 2020-01-01 -->2020-09-08
4.Calendar(日历)
用以下代码验证一下:
import org.junit.Test;
import java.util.Calendar; import java.util.Date;
//Calendar日历类(抽象类)的使用 public class Calendar1 { @Test public void testCalendar(){ //1.实例化 //方式1:创建其子类(GregorianCalendar)的对象 //方式2:调用静态方法 Calendar calendar = Calendar.getInstance(); //2.常用方法 //get() int days = calendar.get(Calendar.DAY_OF_MONTH); System.out.println(days); System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//注意:以周日为每周的第一天
//set()
calendar.set(Calendar.DAY_OF_MONTH,22);
days=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
//add()
calendar.add(Calendar.DAY_OF_MONTH,-3);//负数可表示减几天
days=calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
//getTime():日历类-->Date
Date date = calendar.getTime();
System.out.println(date);
//setTime():Date-->日历类
Date date1 = new Date();
calendar.setTime(date1);
days = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(days);
}}
重点来了!!!