java — 时间日期类

时间:2022-09-22 17:39:16

java —— 时间日期类的简单操作

一、java.util.Date类

  • 获取系统时间
1     public static void main(String[] args) {
2         // 使用Date获取系统时间
3         Date date = new Date();
4         System.out.println(date);
5     }

输出结果:Sun Jan 13 12:30:30 CST 2019

输出结果不符合中国人的阅读习惯,我们得使用 SimpleDateFormat类 进行一些操作,按照我们自己的习惯来读取

 

二、java.util.Calendar类

  • 获取系统时间
    public static void main(String[] args) {
        // 使用getInstance()对Calendar进行实例化
        Calendar cal= Calendar.getInstance();
        // 使用getTime()获取系统时间
        System.out.println(cal.getTime());
    }

输出结果:Thu Jan 26 12:55:15 CST 2017

输出结果和Date获取到的时间格式是一样的,使用 SimpleDateFormat类 进行转换

  • 自己设置时间
1     public static void main(String[] args) {
2         // 使用getInstance()对Calendar进行实例化
3         Calendar cal= Calendar.getInstance();
4         // 使用set()方法进行设置时间
5         cal.set(2018, 06, 01);
6 
7         System.out.println(cal.getTime());
8     }

输出结果:Sun Jul 01 13:11:00 CST 2018

虽然阅读起来不习惯,但日期确实是2018年6月1日

  • 获取单个日期时间属性
 1     public static void main(String[] args) {
 2         Calendar cal = Calendar.getInstance();
 3         cal.set(2018, 06, 01);
 4         // 使用get()方法获取某一个属性
 5         // get(Calendar.YEAR) 获取年份
 6         System.out.print(cal.get(Calendar.YEAR)+"年");
 7         // get(Calendar.MONTH) 获取月份
 8         System.out.print(cal.get(Calendar.MONTH)+"月");
 9         // get(Calendar.DATE) 获取几号
10         System.out.print(cal.get(Calendar.DATE)+"日");
11     }

输出结果:2018年6月1日

Calendar提供一些静态字段,可供get()方法使用,下面为一些常用的字段

java — 时间日期类

 

三、java.text.SimpleDateFormat类

SimpleDateFormat类 继承了 Format抽象类,我们将在SimpleDateFormat进行时间的一些操作

  • 将原本我们不熟悉的Date类型,转换成我们熟悉的格式
1     public static void main(String[] args) {
2         // 实例化SimpleDateFormat类,并传输格式参数
3         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
4         // 使用format()方法,输入Date类型,输出字符串类型
5         String date01 = sdf.format(new Date());
6         System.out.println(date01);
7     }

输出结果:2019年01月13日 13:44:18

日期时间格式,世界上都大不相同,所以我们在对SimpleDateFormat类进行实例化时,就该输入一段格式,来进行控制。

  • 下面是SimpleDateFormat类中的模式字母,实例化的时候,输入格式时会用到(注意大小写)

java — 时间日期类

 

四、日期加减

  • 计算未来的日期
 1     public static void main(String[] args) {
 2         // 实例化SimpleDateFormat类,并传输格式参数
 3         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
 4         Calendar cal = Calendar.getInstance();
 5         
 6         // 使用format()方法,输入Date类型,输出字符串类型
 7         String date01 = sdf.format(cal.getTime());
 8         System.out.println(date01);
 9         
10         // 使用Carlendar的add()方法,给指定的字段进行加减
11         cal.add(Calendar.YEAR, 1);
12         String date02 = sdf.format(cal.getTime());
13         System.out.println(date02);
14     }

输出结果

2019年01月13日 14:08:56
2020年01月13日 14:08:56
  • 计算两个日期的时间差
 1     public static void main(String[] args) {
 2 
 3         Calendar cal01 = Calendar.getInstance();
 4         cal01.set(2012, 12, 26, 12, 20);
 5         // 使用Calendar中的getTimeInMillis()方法获取毫秒数
 6         long time01 = cal01.getTimeInMillis();
 7         
 8         Calendar cal02 = Calendar.getInstance();
 9         cal02.set(2013, 01, 01, 12, 20);
10         long time02 = cal02.getTimeInMillis();
11         
12         // 我们将对两个时间的毫秒差进行操作,得到最后相差的天数
13         long cha = (time02-time01)/(1000*60*60*24);
14         System.out.println("相差的天数:"+cha);
15     }

输出结果:相差的天数:6