日期类

日期类

  与时间相关的类

    1.System类下的currentTimeMillis()

    2.Date类:java.util.Date(以及其子类java.sql.Date)

      如何创建其实例:其下方法:toString()、getTime()

    3.SimpleDateFormat类

    4.Calendar类

  1.java.lang.System类

    system类提供的public static long currentTimeMills()用来返回当前时间与1970年0时0分0秒之间以毫秒为单位的时间差。

    

   2.java.util.Date类

    表示特定的瞬间,精确到毫秒

    Date():创建对象可以获取本地当前的时间

    Date(long date)

    getTime():用来返回当前时间与1970年0时0分0秒GMT以来对Date对象表示的毫秒数。

    toString():把此Date对象转换为以下形式的String:星期 mon dd hh:mm:ss:zzz yyyy

    @Test
    public void test1(){
        Date d1 = new Date();
        System.out.println(d1.toString());//Fri Apr 12 14:02:27 CST 2019    
        System.out.println(d1.getTime());//1555049142281
        java.sql.Date d2 = new java.sql.Date(214141143);
        System.out.println(d2);//1970-01-03
        Date d3 = new Date(1555049142281L);
        System.out.println(d3);
    }

  

    3.SimpleDateFormat类易于国际化

      格式化:日期----->文本使用SimpleDateFormat()方法

      解析:文本------>日期

       格式化:
     //方式一: SimpleDateFormat sdf = new SimpleDateFormat(); String date = sdf.format(new Date()); System.out.println(date);//19-4-12 下午2:13 //方式二: SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date1 = sdf1.format(new Date()); System.out.println(date);//19-4-12 下午2:19

 注:

  解析需要看创建SimpleDateFormat类对象的构造器,参数的格式决定了写入parse()参数的形式

        解析:
        Date date2 = sdf.parse("19-4-12 下午2:13");
        System.out.println(date2);

 

练习:

三天打鱼两天晒网

 
    @Test
    public void test2() throws ParseException{
        String str1 = "1999-9-21";
        String str2 ="1999-9-19";
        int cday=getDays(str1, str2);
        if(cday%5==0||cday%5==4){
            System.out.println("晒网");
        }else{
            System.out.println("打鱼");
        }
    }
    
    public int getDays(String date1,String date2) throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
        Date d1 = sdf.parse(date1);
        Date d2 = sdf.parse(date2);
        long ltime = d1.getTime()-d2.getTime();
        return (int)ltime/1000/3600/24+1;
}

       4.java.lang.Calendar(日历)类

      Calendar是一个抽象基类,主要用于完成日期字段之间相互操作功能

      <1>获取Calendar实例的方法

      》使用Calendar.getInstance()方法

      》调用他的子类GregorianCalendar的构造器。

        <2>通过get(int field)方法来取得想要的时间信息

      》public void set(int field,int value)

      》public void add(int field,int amount)

      》public final Date getTime()

      》public final void setTime(Date date)

    @Test
    public void test3(){
        Calendar c = Calendar.getInstance();
        int i = c.get(Calendar.DAY_OF_MONTH);//当月的第几天
        System.out.println(i);//12
c.add(Calendar.DAY_OF_MONTH,
2); int j = c.get(Calendar.DAY_OF_MONTH); System.out.println(j);//14

      c.set(Calendar.DAY_OF_MONTH, 24);
      Date d = c.getTime();
      System.out.println(d);//Wed Apr 24 20:55:40 CST 2019

    } 
原文地址:https://www.cnblogs.com/yangHS/p/10695792.html