Date类、SimpleDateFormat类、Calendar类

Date类

类 Date 表示特定的瞬间,精确到毫秒。
需要注意的是 ,一个月由0到11的整数表示; 0是1月,1是2月等等

构造方法

public Date()
分配一个 Date对象并对其进行初始化,以便它表示分配的时间,测量到最近的毫秒。
public Date(long date)
分配一个 Date对象,并将其初始化为表示从标准基准时间(称为“时代”)即1970年1月1日00:00:00 GMT起的指定毫秒数。

public class Demo {
    public static void main(String[] args) {
    	//创建一个Date对象,表示当前时间
        Date date1=new Date();
        System.out.println(date1);
        //创建一个Date对象,表示从1970年1月1日00:00:00 GMT起的指定毫秒数。
        Date date2=new Date(1000*60*60*24);
        System.out.println(date2);
    }
}
/*
运行结果:
Sun Jan 12 18:55:22 CST 2020
Fri Jan 02 08:00:00 CST 1970
*/
方法

public long getTime()
返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数 。
public void setTime(long time)
设置此 Date对象以表示1970年1月1日00:00:00 GMT后的time毫秒的时间点。

public class Demo {
    public static void main(String[] args) {
        Date date1=new Date();
        long time=date1.getTime();
        System.out.println(time);
        Date date2=new Date();
        //给计算机元年增加毫秒值
        date2.setTime(1000*60*60*24); 
        System.out.println(date2);
    }
}
/*
运行结果:
1578826772098
Fri Jan 02 08:00:00 CST 1970
*/

SimpleDateFormat类

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

构造方法

public SimpleDateFormat()
构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。
SimpleDateFormat(String pattern)
使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。

public class Demo4 {
    public static void main(String[] args) throws ParseException {
        //指定日期显示的格式
        Date date=new Date();
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
        //按照默认格式对日期进行格式化
        String format1=simpleDateFormat1.format(date);
        System.out.println(format1);
        
        //在初始化时指定格式
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年M月d日 HH:mm:ss");
        //将日期按照格式格式化为一个字符串
        String format2=simpleDateFormat2.format(date);
        System.out.println(format2);
	}
}
/*
运行结果:
20-1-12 下午7:04
2020年1月12日 19:04:33
*/

在Java帮助文档中,给了我们关于格式的规则,我们可以通过查阅文档来显示我们想要的格式

方法

public String format(Date date)
把一个日期对象格式化成一个字符串
在上述内容中已经使用过
public Date parse(String dateStr)
把一个日期字符串解析成一个日期对象 注意要以指定格式解析

public class Demo4 {
    public static void main(String[] args) throws ParseException {
        String dateStr="2020-01-11 10:00:00";
        //注意格式要对应字符串,否则会报错
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //把一个日期字符串解析成一个日期对象
        Date date = simpleDateFormat.parse(dateStr);
        System.out.println(date);
	}
}
/*
运行结果:
Sat Jan 11 10:00:00 CST020
*/       

Calendar类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

方法

因为Calendar类是一个抽象类,所以我们要使用方法获取Calendar类的对象
public static Calendar getInstance()
使用默认时区和语言环境获得一个日历。
public int get(int field)
返回给定日历字段的值。
public abstract void add(int field,int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
public final void set(int year,int month,int date)
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
set方法还有很多重载方法,可查询文档获得。

public class Demo {
    public static void main(String[] args) {
        Calendar instance=Calendar.getInstance();
        /*
        如果我们输出instance怎会得知它是GregorianCalendar类的对象,该类是Calendar的子类
        所以getInstance方式实际上返回的是GregorianCalendar类的对象
        */
        
       	//field是Calendar类中的字段,具体可查询帮助文档
        int year=instance.get(Calendar.YEAR);
        System.out.println(year);
        int month = instance.get(Calendar.MONTH);
        System.out.println(month);
       
        Calendar instance1=Calendar.getInstance();
        instance1.add(Calendar.YEAR,-1);
        int year1 = instance1.get(Calendar.YEAR);
        System.out.println(year1);
        
        Calendar instacne2=Calendar.getInstance();
        instacne2.set(2021,6,5);
        int day=instacne2.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
    }
}
/*
运行结果:
2020
0
2019
5
*/
发布了26 篇原创文章 · 获赞 1 · 访问量 330

猜你喜欢

转载自blog.csdn.net/weixin_45919908/article/details/103948265