Day12_常用类

Day12_常用类

Date类

java.sql.Date:表示到年月日

java.util.Date:表示到年月日时分秒

import java.util.Date;

public class Demo03 {
    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d.getTime());
        System.out.println(System.currentTimeMillis());//常用,原因:不用创建对象,直接调用
        //通过时间戳直接初始化java.sql.Date对象
        java.sql.Date sqlDate= new java.sql.Date(1596611974007L);
        System.out.println(sqlDate);
        //String----->java.sql.Date
        java.sql.Date valueOf = java.sql.Date.valueOf("2020-8-5");
        System.out.println(valueOf);

        //java.util.Date----->java.sql.Date
        java.sql.Date sqlDate2=new java.sql.Date(new Date().getTime());

        //java.sql.Date----->java.util.Date
        Date date = sqlDate2;//java.sql.Date类是java.util.Date的子类。子类直接转化成父类

        //java.sql包下的类:
        java.sql.Time time=new java.sql.Time(1596611974007L);
        System.out.println(time.toGMTString());//toGMTString()已过时,实际编程中不建议用
        //时间戳更精确
        java.sql.Timestamp ts = new java.sql.Timestamp(1596611974007L);
        System.out.println(ts);


    }
}

输出:

1596612952197
1596612952197
2020-08-05
2020-08-05
5 Aug 2020 07:19:34 GMT
2020-08-05 15:19:34.007

String类与Date类的相互转化

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo04 {
    public static void main(String[] args) {
        //日期格式类,DateFormat类是抽象类,不能直接创建对象,创建他的实
      用类
        DateFormat df= new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
        try {
            //String--->Date
            Date d = df.parse("2020-8-5 15-53-56");
            System.out.println(d);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //Date--->String
        String str=df.format(new Date());
        System.out.println(str);
    }
}

输出:

Wed Aug 05 15:53:56 CST 2020
2020-08-05 03-57-05

Calendar类

Calendar类很强大,但是用的少!

import java.util.Calendar;
import java.util.Date;

public class Demo05 {
    public static void main(String[] args) {
        //Calendar类是抽象类,通过调用其方法来获取实例
        Calendar cal=Calendar.getInstance();
        //查询
        System.out.println(cal.get(Calendar.DATE));
        System.out.println(cal.get(Calendar.MONTH));
        System.out.println(cal.get(Calendar.YEAR));
        //设置
        cal.set(Calendar.YEAR,2050);
        System.out.println(cal.get(Calendar.YEAR));

        //String--->Calendar
        //String--->Date
        String str="2050-2-5";
        Date valueOf=java.sql.Date.valueOf(str);
        //Date--->Calendar
        cal.setTime(valueOf);
        System.out.println(cal.get(Calendar.YEAR));
        System.out.println(cal.get(Calendar.MONTH));
        System.out.println(cal.get(Calendar.DATE));
    }
}

输出:

//当前日期:2020-8-5
5
7//月份从0开始计算
2020
2050
2050
1//月份从0开始计算
5

可以查询日期的日历(小练习)

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class calendar {
    public static void main(String[] args) {
        System.out.print("请输入您想要查看的日期--(格式例如:2020-8-5):");
        Scanner sc = new Scanner(System.in);
        String str=sc.next();

        //String--->Calendar
        Date valueOf= java.sql.Date.valueOf(str);
        Calendar cal= new GregorianCalendar();
        cal.setTime(valueOf);
        //输出日历头
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        //获取该月的天数
        int maxDay=cal.getActualMaximum(Calendar.DATE);
        //获取输入的天数
        int today=cal.get(Calendar.DATE);
        //将cal对象设置为该月的第一天
        cal.set(Calendar.DATE,1);
        //获取该月第一天是星期几
        int dayOfWeek= cal.get(Calendar.DAY_OF_WEEK);
        //在第一天前输出空格
        for (int i = 0; i < dayOfWeek-1; i++) {
            System.out.print("\t");
        }
        //计算输出的天数,以便按星期换行
        int count=0;
        count=count+dayOfWeek-1;
        for (int i = 0; i < maxDay; i++) {
            if(i!=today-1) {
                System.out.print(i + 1 + "\t");
                count++;
            }else{
                //标记输入的日期
                System.out.print(i + 1 + "*\t");
                count++;
            }
            //换行
            if(count%7==0){
                System.out.println();
            }
        }
    }
}

输出:(查询2030-3-4,由于markdown的编辑,出现乱码)

请输入您想要查看的日期--(格式例如:2020-8-5):2030-3-4
日	一	二	三	四	五	六
					1	2	
3	4*	5	6	7	8	9	
10	11	12	13	14	15	16	
17	18	19	20	21	22	23	
24	25	26	27	28	29	30	
31	

枚举

枚举与switch结合应用:

  1. switch()放: int char byte String 枚举
  2. case后面只能是枚举下的实例
  3. 什么情况下使用枚举?值固定的时候

不能创建对象的四种情况:

  1. 是接口

  2. 抽象类

  3. 没有空构造器

  4. 构造器的用private修饰,只能在本类中创建

    此时可以通过类名.方法名,类名.属性名来访问方法和属性

posted @ 2020-08-05 20:57  XLR  阅读(108)  评论(0编辑  收藏  举报