最近经常用到时间这个参数,无论是自己获取到传进去,还是从数据库获取出来,都是Java开发必备的一门基本功。
一、Date类
类 Date 表示特定的瞬间,精确到毫秒。
最简单也最经典的用法:
1 | Date date = new Date(); // 获取当前的年月日时分秒以及星期和时区 |
但是,如果我们按自己想要的格式来显示日期,一般会引用DateFormat类的子类SimpleDateFormat
二、DateFormat类
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
DateFormat类是抽象类,所以使用其子类SimpleDateFormat。
一般日期类型转String类型,或者自定义String类型转日期类型都会用到它。
注:”HH:mm:ss”和”hh:mm:ss” ,前者是24小时制,后者是12小时制
注:SimpleDateFormat中对应String中的格式,才能成功转换
三、小案例:今天是今年的第几天?
思路:
将今年第一天和今天都封装到字符串里
将字符串转换成日期对象
将日期对象转换成毫秒值
让今天的毫秒值减去第一天的毫秒值
将毫秒值转换成天数
四、Calendar类
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | public static void main(String[] args) { //Calendar对象,无参,默认为当前日期 Calendar calendar = new GregorianCalendar(); //获取当前年份 System.out.println(calendar.get(Calendar.YEAR)); //获取当前月份 0表示一月,1表示二月......11表示12月 System.out.println(calendar.get(Calendar.MONTH)); //获取当前日期 也可以使用DAY_OF_MONTH System.out.println(calendar.get(Calendar.DATE)); //获取当前时 24小时进制 System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); //获取当前分 System.out.println(calendar.get(Calendar.MINUTE)); //获取当前秒 System.out.println(calendar.get(Calendar.SECOND)); //获取今天是这个月的第几个星期 System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); //获取今天是星期几 1表示星期天,2表示星期一......7表率星期六 System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); // 设置日期时间(月份是从0开始的)(法一) calendar = new GregorianCalendar( 2021 , 11 , 14 , 20 , 20 , 20 ); // 2021-11-14 20:20:20 //(法二) calendar.set(Calendar.YEAR, 2021 ); calendar.set(Calendar.MONTH, 10 ); calendar.set(Calendar.DAY, 14 ); System.out.println( "Calendar和Date转换************" ); Date now = calendar.getTime(); System.out.println(now); System.out.println(calendar.setTime(now)); System.out.println( "Calendar日期计算以及判断***********" ); calendar = new GregorianCalendar(); Calendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, 2035 ); //是否在时间(calendar2)之后 System.out.println(calendar.after(calendar2)); //是否在时间(calendar2)之前 System.out.println(calendar.before(calendar2)); //增加多少年月日,时分秒与之同理 calendar.add(Calendar.YEAR, - 10 ); calendar.add(Calendar.MONTH, 5 ); calendar.add(Calendar.DAY, 1 ); } |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。