常用类 4 Date类和DateFormat类
我们把1970年1月1日00:00:00 定为基准时间
Date类
大部分方法已过时,不常用
package oop2.date; /* Date中的三个类 sql包下的类 Date: 只含有年月日 Time: 只含有时分秒 Timestamp: 时间戳,既含有年月日,又含有时分秒 */ import java.sql.Date; public class DateB { public static void main(String[] args) { //只含有年月日 ,没有时分秒 java.sql.Date date1 = new java.sql.Date(System.currentTimeMillis()); System.out.println(date1); String d = "2019-9-10"; Date date = Date.valueOf(d); System.out.println(date); //字符串类型转化为Date类型 } }
DateFormat类
日期格式化的类
package oop2.date; /* 作用:格式化日期类 */ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatA { public static void main(String[] args) throws ParseException { Date date = new Date(); System.out.println(date); //时间格式化 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); // 也可以: yyyy年MM月dd日 hh:mm:ss // DateFormat dateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss"); //调用格式方法 String format = dateFormat.format(date); // String format2 = dateFormat2.format(date); System.out.println(format); // System.out.println(format2); System.out.println("=================== [B] String类型转为Date类型 ===================================="); String str = "2020-09-09 09:09:09"; DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //转的格式和string的格式要一致 Date parse = dateFormat1.parse(str); System.out.println(parse); } }
常用类 5 Calendar类(日历类)
在1.7 1.8还能用,到高版本也已经过时了。
package oop2.date; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class MyCalendar { public static void main(String[] args) { //创建日历类对象 Calendar calendar = new GregorianCalendar(); System.out.println(calendar); System.out.println(calendar.get(Calendar.YEAR)); System.out.println(calendar.get(Calendar.MONTH)); System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); System.out.println(calendar.get(Calendar.HOUR)); //可以对年月日进行修改实现 calendar.set(Calendar.MONTH,6); System.out.println(calendar.get(Calendar.MONTH)); int max = calendar.getMaximum(Calendar.DATE); //获得本月中一共有多少天 System.out.println(max); /* Calendar和Date 类可以相互转换 */ //把日期类对象转成日历类对象 Date date = new Date(); Calendar calendar1 = new GregorianCalendar(); calendar1.setTime(date); //把日历类对象转化为日期类 Date time = calendar1.getTime(); } }
常用类 6 JDK8的新日期类
引入了 java.time 包 。少用的。常用的还是Date和DateFormat类
package oop2.date; import java.time.Instant; import java.time.LocalDate; import java.time.format.DateTimeFormatter; /** * JDK1.8中新增加的 */ public class MyTimeA { public static void main(String[] args) { //Instant Instant now = Instant.now(); System.out.println(now); System.out.println(now.MAX); System.out.println(now.MIN); System.out.println(now.EPOCH); //LocalDate 这个只含有年月日 LocalDate localDate = LocalDate.now(); System.out.println(localDate); //DateTimeFormatter DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); String format = localDate.format(dft); System.out.println(format); // String 类型转LocalDate LocalDate.parse("2029年09月10日",dft); } }