一、util、sql、SimpleDateFormat关系
1、java.sql.Date和java.util.Date的区别:
java.util.Date:年月日 时分秒
java.sql.Date:年月日
2、java.sql.Date和java.util.Date的联系:
java.sql.Date(子类) extends java.util.Date (父类)
3、SimpleDateFormat
用更简单的方法将String---》java.util.Date 类型转换
二、java.util.Date
显示时间的方法
代码中存在显示时间的各种方法:过期方法,过时方法,废弃方法
显示年/月/日
import java.util.Date;
public class Test {
public static void main(String[] args) {
// java.util.Date;
Date d = new Date();
System.out.println(d);
System.out.println(d.toString());
System.out.println(d.toGMTString());//过期方法,过时方法,废弃方法。
System.out.println(d.toLocaleString());
System.out.println(d.getYear());//120+1900=2020
System.out.println(d.getMonth());//5 :返回的值在 0 和 11 之间,值 0 表示 1 月。
//返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
System.out.println(d.getTime());//1665415169409
System.out.println(System.currentTimeMillis());
/*
(1)疑问:以后获取时间差用:getTime()还是currentTimeMillis()
答案:currentTimeMillis()--》因为这个方法是静态的,可以类名.方法名直接调用
(2)public static native long currentTimeMillis();
本地方法
为什么没有方法体?因为这个方法的具体实现不是通过java写的。
(3)这个方法的作用:
一般会去衡量一些算法所用的时间
*/
long startime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
System.out.println(i);
}long endTime = System.currentTimeMillis();
System.out.println(endTime-startime);
}
}
代码显示结果:
三、java.sql.Date
过渡内容,使用中大量使用util.Date
package com.msb.test02;
import java.sql.Date;
public class Test02 {
public static void main(String[] args) {
Date d = new Date(155564645725l);
System.out.println(d);
/*
(1)java.sql.Date和java.util.Date的区别:
java.util.Date:年月日 时分秒
java.sql.Date:年月日
java.sql.Date(子类)extends java.util.Date(父类)
*/
//java.sql.Date和java.util.Date相互转换
//【1】util---->sql
java.util.Date date = new Date(155564645725l);//创建util.date的对象
//方式一:向下转型
Date date1 = (Date)date;
//方式二:利用构造器
Date date2 = new Date(date.getTime());
//【2】sql--->util
java.util.Date date3 = d;
//【3】String--->sql.date
Date date4 = Date.valueOf("2019-3-8");
}
}
四、SimpleDateFormat
一个新的类,可以自己定义所输入时间的格式
SimpleDateFormat(子类) extends DateFormat(父类是一个抽象类)
1、日期格式:
在使用中要自己定义好格式,所需要的内容:"yyyy-MM-dd HH:mm:ss"
2、parse
在String--->Date中使用parse方法,在parse后的括号内输入你想要的时间字符串并按照自己定义的时间输入格式!
3、format
在Date--->String中使用format方法,同理括号后接受时间并输出,使其在控制台上输出字符串形式,便于阅读!
4、具体代码内容:
package com.msb.test02;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test05 {
public static void main(String[] args) {
//日期转换:
//SimpleDateFormat(子类) extends DateFormat(父类是一个抽象类)
//格式化的标准已经定义好了:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//String--->Date
try {
Date d = df.parse("2019-4-6 12:23:54");
System.out.println(d);
} catch (ParseException e) {
throw new RuntimeException(e);
}
//Date--->String
String format = df.format(new Date());
System.out.println(format);
Date date = new Date();
System.out.println(date);
System.out.println(date.toGMTString());
System.out.println(date.toLocaleString());
}
}