06Date类和Calendar类

发布时间 2023-10-20 19:57:43作者: ahssmy

Date类

  • Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代。

  • 时间单位:

    • 1秒 = 1000毫秒
    • 1毫秒 = 1000微秒
    • 1微妙 = 1000纳秒

    案例:

    public static void main(String[] args) {
    		//创建一个Date对象
    		//今天
    		Date date1 = new Date();//创建date对象
    		System.out.println(date1.toString());//打印当前时间
    		System.out.println(date1.toLocaleString());//另一种方式打印当前时间
    		//昨天
    		Date date2 = new Date(date1.getTime()-(60*60*24*1000));
    		System.out.println(date2.toLocaleString());
    		
    		//2.方法after/before
    		date2.after(date1);
    		boolean b1 = date1.after(date2);//今天是在昨天之后吗?
    		System.out.println(b1);
    		boolean b2 = date1.before(date2);//今天是在昨天的之前吗?
    		System.out.println(b2);
    		
    		//比较compareTo();
    		int i = date1.compareTo(date2); //date1比date2大就是1,小就是-1,相等就是0
    		System.out.println(i);
    		//比较是否相等equals()
    		boolean b3 = date1.equals(date2);
    		System.out.println(b3);
    	}
    

    运行结果:

    1

Calendar类

  • Calendar类提供了获取或设置各种日历字段的方法。

  • 构造方法:protected Calendar(); 由于修饰符是protected,所以无法直接创建对象。

  • 其他方法:

    方法名 说明
    static Calendar getInstance() 使用默认时区和区域获取日历
    void set(int year,int month,int date, int hourofday,int minute,int second) 设置年、月、日、时、分、秒。
    int get(int field) 返回给定日历字段的值。字段比如年、月、日等
    void setTime(Date date) 返回一个Date表示此日历的时间。Calendar-Date
    void add(int field,int amount) 按照日历的规则,给指定字段添加或减少时间量
    long getTimeInMillies() 返回该日历的时间值,单位毫秒
    public static void main(String[] args) {
    		//1.创建Calendar对象
    		Calendar calendar = Calendar.getInstance();
    		 System.out.println(calendar.getTime().toLocaleString());
    		 System.out.println(calendar.getTimeInMillis());
    		 //2获取时间信息
    		 //获取年
    		 int year = calendar.get(Calendar.YEAR);
    		 //月
    		 int month = calendar.get(Calendar.MONTH);
    		 //日
    		 int day = calendar.get(Calendar.DAY_OF_MONTH);//Date
    		 //小时
    		 int hour = calendar.get(Calendar.HOUR_OF_DAY);//HOUR12小时,HOUR_OF_DAY 24小时
    		 //分
    		 int minute = calendar.get(Calendar.MINUTE);
    		 //秒
    		 int second = calendar.get(Calendar.SECOND);
    		 
    		 System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+":"+minute+":"+second);
    		 
    		 //3修改时间
    		 Calendar calendar2 = Calendar.getInstance();
    		 calendar2.set(Calendar.DAY_OF_MONTH, 5); //将日改成5号
    		 System.out.println(calendar2.getTime().toLocaleString());
    		 
    		 //4add方法修改时间
    		 calendar2.add(Calendar.HOUR, -1);//减一个小时
    		 System.out.println(calendar2.getTime().toLocaleString());
    	}
    

    运行结果:

    2