一 .java 8之前的日期时间的API:
1.System类的currentTimeMillis();
2.java.util.Date & java.sql.Date;
3.SimpleDateFormat
4.Calendar
二.SimpleDateFormat
Date date = new Date(); System.out.println(date); //Mon Feb 01 13:42:39 SGT 2021 //SimpleDateFormat : 对日期Date类的格式化和解析 //格式化 : Date --> 字符串 //解析 : 字符串 --> Date //1.默认的空参构造 SimpleDateFormat sdf = new SimpleDateFormat(); System.out.println(sdf.format(date)); //21-2-1 下午1:42 //2.设置日期格式输出 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss"); System.out.println(sdf1.format(date));//2021-02-01 01-44-59 //注意解析 , 字符串 -- >Date :必须要按照相应的格式 ,否则会报错 Date parse = sdf1.parse("2021-02-01 01-44-59"); System.out.println(parse);
三 . Calendar
![](https://img2020.cnblogs.com/blog/1648341/202102/1648341-20210202153311149-602838796.png)
//Calendar (抽象类) public class DateTest2 { public static void main(String[] args) { //1.调用Calendar的子类 :class java.util.GregorianCalendar Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getClass());//class java.util.GregorianCalendar //2.常用方法 //get() int i = calendar.get(Calendar.DAY_OF_MONTH); //获取当前是本月的第几天 int i2 = calendar.get(Calendar.DAY_OF_YEAR); //当天是本年的第几天 int i3 = calendar.get(Calendar.WEEK_OF_YEAR); //当周是本年的第几周 System.out.println(i); System.out.println(i2); System.out.println(i3); //set() --> Calendar是可变的 calendar.set(Calendar.DAY_OF_MONTH,2); //修改当天是本月第几天 int i4 = calendar.get(Calendar.DAY_OF_MONTH); System.out.println(i4); //add() calendar.add(Calendar.DAY_OF_MONTH,3); //在当天的基础上加几天 int i5 = calendar.get(Calendar.DAY_OF_MONTH); System.out.println(i5); //getTime() Date time = calendar.getTime(); //相当于创建一个Date类 System.out.println(time); } }
四 .JDK8之前日期时间API的缺点