java中的日期类(Date、Caleandar、SimpleDateFormat)

java中日期类

Date类

概述

使用Date类代表当前系统时间,它的每一个实例都表示一个确切的时间点,内部使用一个long类,记录毫秒值,该毫秒值表示1970年1月1日00:00:00.000 GMT之后的毫秒数。但是由于Date设计存在缺陷,所以它的大部分方法都被设置为“过时的”,不建议使用。

Date类的常用方法

import java.util.Date;

public class DateDemo {
    
    
    public static void main(String[] args) {
    
    
        //创建了Date类的实例对象,表示获取了当前系统时间
        Date now = new Date();
        Date now1 = new Date();

        //after() 测试此日期是否在指定日期之后
        System.out.println(now1.after(now));
        
        //before() 测试此日期是否在指定日期之前
        System.out.println(now1.before(now));
        
        //compareTo() 比较两个日期,若相等则返回0,小于返回负数,大于返回正数
        System.out.println(now.compareTo(now1));
        
        //getTime() 返回当前系统时间,精确到毫秒,自1970年1月1日0时0分0秒至今
        System.out.println(now.getTime());//1605809808070
        
        //hashCode()  根据对象内存地址计算其哈希值
        System.out.println(now.hashCode());//-507898765
        
        //getDate() 返回今天是本月的第几天,方法名上有横线代表已弃用
        System.out.println(now.getDate());//20
        
        //getDay() 返回今天是本周的第几天
        System.out.println(now.getDay());//5
        
        //getMonth() 返回本月是第几月,从0开始
        System.out.println(now.getMonth()+1);//11
        
        //getYear() 返回今年是第几年,从1900年开始
        System.out.println(now.getYear()+1900);//2020

    }
}

Calendar类

概述

Calendar的翻译就是日历,Calendar类是一个抽象类,在实际使用过程中实现特定的子类,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

语法格式:
Calendar c1 = Calendar.getInstance();
c1.get(Calendar);

Calendar类的常用方法

import java.util.Calendar;

public class CalendarDemo {
    
    
    public static void main(String[] args) {
    
    
        Calendar date = Calendar.getInstance();
        //获取时间,使用默认时区和环境语言获得一个日历,月份下标从0开始
        System.out.println(date.getTime());
        System.out.println("年:"+date.get(Calendar.YEAR));
        System.out.println("月:"+(date.get(Calendar.MONTH))+1);
        System.out.println("日:"+date.get(Calendar.DAY_OF_MONTH));
        System.out.println("时:"+date.get(Calendar.HOUR_OF_DAY));
        System.out.println("分:"+date.get(Calendar.MINUTE));
        System.out.println("秒:"+date.get(Calendar.SECOND));

        //设置时间,可以一次性设置,也可以单次设置
        //set(int year, int month, int date, int hourOfDay, int minute, int second)
        date.set(2020,1,1,1,1,1);
        System.out.println(date.getTime());

        //时间计算 add()  两个参数,第一个是要计算的时间点(年月日时分秒等),第二个是要加的时间数
        date.add(Calendar.MONTH,1);
        System.out.println(date);//MONTH=2
    }
}

SimpleDateFormat类

概述

SimpleDateFormat:日期格式化类。

构造方法:SimpleDateFormat(格式);//yyyy-MM-dd

自定义日期格式必须要遵守JDK的规定:
在这里插入图片描述

SimpleDateFormat类的使用

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

public class SimpleDateFormatDemo {
    
    
    public static void main(String[] args) throws ParseException {
    
    
        //日期转字符串
        Date now = new Date();
        SimpleDateFormat sdf0 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        String str0 = sdf0.format(now);
        System.out.println(str0);//2020年11月20日 03时06分14秒

        //字符串转日期  格式一定要一致,并且这里会抛出一个异常,害怕你格式写错了throws ParseException
        String str1 = "2020-11-20";
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf1.parse(str1);
        System.out.println(date);//Fri Nov 20 00:00:00 CST 2020
    }
}

猜你喜欢

转载自blog.csdn.net/Lotus_dong/article/details/109834032