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.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类中的模式字母,实例化的时候,输入格式时会用到(注意大小写)
四、日期加减
- 计算未来的日期
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