JDK8之前日期和时间的API

JDK8之前日期和时间的API

/**
*
* JDK8之前日期和时间的API测试
* 1.System类中currentTimeMills()
* 2.java.util.Date和子类java.sql.Date
* 3.SimpleDateFormat
* 4.Calendar
*
* @author ccchai
* @create 2022-02-20 12:54
*/
public class DateTimeTest {

   @Test
   public void testSimpleDateFormat() throws ParseException {

       //实例化SimpleDateFormat:使用默认的构造器
       SimpleDateFormat sdf = new SimpleDateFormat();

       //格式化: 日期 --> 字符串
       Date date = new Date();
       System.out.println(date);//Mon Feb 21 17:40:25 CST 2022
       String format = sdf.format(date);
       System.out.println(format);//22-2-21 下午5:40

       //解析:格式化的逆过程,字符串(必须按指定格式) --> 日期
       String str = "22-5-21 下午5:40";
       Date date1 = sdf.parse(str);
       System.out.println(date1);//Sat May 21 17:40:00 CST 2022

       //********************按照指定的方式格式化和解析:调用带参的构造器***********************
       SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
       //格式化
       String format1 = sdf1.format(date);
       System.out.println(format1);//2022-02-21 05:47:31
       //解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现)
       //否则:报异常
       Date date2 = sdf1.parse("2025-02-21 05:47:31");
       System.out.println(date2);//Fri Feb 21 05:47:31 CST 2025
  }


   @Test
   public void test2(){
       //构造器一:Date():创建一个对应当前时间的Date对象
       Date date1 = new Date();
       System.out.println(date1.toString());//Sun Feb 20 13:00:21 CST 2022
       System.out.println(date1.getTime());//1645333221250

       //构造器二:Date():创建指定毫秒数的Date对象
       Date date2 = new Date(4564646797984L);
       System.out.println(date2);//Sat Aug 25 21:26:37 CST 2114

       //创建java.sql.Date对象
       java.sql.Date date3 = new java.sql.Date(4564646797984L);
       System.out.println(date3);//2114-08-25

       //如何将java.util.Date对象转换为java.sql.Date
       Date date4 = new Date();
       java.sql.Date date5 = new java.sql.Date(date4.getTime());
       System.out.println(date5);
  }

   //1.System类中的currentTimeMillis()
   @Test
   public void test1(){
       long time = System.currentTimeMillis();
       //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
       //称为时间戳
       System.out.println(time);
  }

   /*
   Calendar日历类(抽象类)的使用
    */
   @Test
   public void testCalendar(){
       //1.实例化
       //方式一:创建其子类(GregorianCalendar)的对象
       //方式二:调用其静态方法getInstance()
       Calendar calendar = Calendar.getInstance();

       //2.常用方法
       //get()
       int day = calendar.get(Calendar.DAY_OF_MONTH);
       System.out.println(day);

       //set()
       calendar.set(Calendar.DAY_OF_MONTH,6);
       System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

       //add()
       calendar.add(Calendar.DAY_OF_MONTH,-5);
       System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

       //getTime():日历类 --> Date
       Date date = calendar.getTime();
       System.out.println(date);

       //setTime():Date --> 日历类
       Date date1 = new Date();
       calendar.setTime(date1);
       day = calendar.get(Calendar.DAY_OF_MONTH);
       System.out.println(day);
  }
}
posted @ 2022-02-21 21:04  阳光真好的博客  阅读(54)  评论(0)    收藏  举报