💨 Date(日期)类
java.util.Date
java.text.SimpleDateFormat
- 日期字符串格式& 字母符号
- Java中对日期的处理
- 获得当前系统日期时间
- 日期格式化(格式化Date的toString方法的字符串): date --转换-> String
- 给定字符串日期,转换为Date类型: String --转换-> date
public class DateTest01 { public static void main(String[] args) throws Exception{ //获取当前系统时间(精确到毫秒的系统当前时间) Date date1 = new Date(); System.out.println(date1);//Sun Sep 12 15:47:49 CST 2021(sun公司重写的toString方法) //如上可知,Date类的同toString方法已经被重写,但其转换的格式不易于国人习惯 //可以将日期格式化 //将日期类型Date,按照指定的格式进行转换:Date --转换成具有一定格式的日期字符串--> String //SimpleDateFormat是java.text包下的,专门负责日期格式化的 //yyyy 年 MM 月 dd 日 HH小时 mm 分钟 ss秒钟 SSS毫秒 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS"); String format1 = sdf.format(date1); System.out.println(format1);//2021/09/12 16:37:40 229 //将一个日期字符串,转换为Date类型 String time = "1997/04/02 11:11:11 111"; //SimpleDateFormat sdf1 = new SimpleDateFormat("格式不能随便写,需与上面日期字符串格式相同,不然会出现ParseException "); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss SSS"); Date parse1 = sdf1.parse(time); System.out.println(parse1);//Wed Apr 02 11:11:11 CST 1997 System.out.println(sdf1.format(parse1));//1997/04/02 11:11:11 111 } }
- 统计自1970年1月1日到系统当前时间的总毫秒数的方法
java中Java.lang.System类中有一个统计自1970年1月1日到系统当前时间的总毫秒数的方法:
- System.currentTimeMillis
System类中的其他相关属性和方法:
- System.out — out是System类的静态变量
- System.out.println() — println()方法不是System类的,是PrintStream类的方法
- System.gc() — 建议启动垃圾回收器
- System.exit(0) — 退出JVM
public class DateTest02 { public static void main(String[] args) { //获得自1970年1月1日 00:00:00 000 到当前系统时间的总毫秒数 long ct = System.currentTimeMillis(); System.out.println(ct);//1631512637261 //统计一个方法运行时耗费的时间 long begin = System.currentTimeMillis(); print(); long end = System.currentTimeMillis(); System.out.println("耗费"+(end-begin)+"毫秒");//耗费28毫秒 } public static void print() { for (int i = 0; i < 1000; i++) { System.out.println("i = " + i); } } }
- Date类的构造方法
Date() — 获取当前系统时间(精确到毫秒的系统当前时间)
Date(long date) — 获得自"1970年1月1日00:00:00 000"为标准基准时间以后的指定毫秒数public class DateTest03 { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); //Date() --- 获取当前系统时间(精确到毫秒的系统当前时间) Date date1 = new Date(); String format1 = sdf.format(date1); System.out.println(format1);//2021-09-16 14:07:05 770 //Date(long date) --- 获得自"1970年1月1日00:00:00 000"为标准基准时间以后的指定毫秒数 Date date2 = new Date(1);//参数是毫秒数 String format2 = sdf.format(date2); //北京是东八区,差8个小时,所有系统时间是按照"1970年1月1日08:00:00 000"开始计算的 System.out.println(format2);//1970-01-01 08:00:00 001 //练习:计算昨天此刻的毫秒数 long l = System.currentTimeMillis(); System.out.println(l);//1631772942562 System.out.println(l-1000*60*60*24);//1631686542562 } }