对于Java的时间操作,有你不知道的知识点
来源:互联网 发布:汉王软件 编辑:程序博客网 时间:2024/06/05 03:26
Java在操作有关时间的时候,如果你只会使用Date那么说明你已经过时了,现在我们要使用的更方便的类Calendar
Calendar故名思意,他是一个日历表类,现实中的日历既能查看当前日期,也能查看以后的日历,比如今天周几,今天几号。
在Java中Calendar是一个很精确的时间工具,它的精确程度已经精确到毫秒级了。
接下来我们用代码来介绍这个神奇的类:
//使用cal来获取现在的时间,看以下的例子//创建一个实例,默认是获取当前的时间。Calendar cal = Calendar.getInstance();SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//使用getTime来获取代表当前的Date时间对象System.out.println(format.format(cal.getTime()));//如果要改变时间那么随便设置就好,但是要注意cal他会满了进制会自动进位//比如月数是从零开始。cal.set(2017,11,25,36,58,96);System.out.println(format.format(cal.getTime()));
上面的小例子,相信读者朋友们已经认识到这个类的方便之处了。下面我们再深入探究一下我们的calendar类细微之处。
// 显示当前年份int year = cal.get(Calendar.YEAR);System.out.println("year is = " + String.valueOf(year));// 显示当前月份 (从0开始, 实际显示要加一)int month = cal.get(Calendar.MONTH);System.out.println("nth is = " + (month + 1));// 本周几int week = cal.get(Calendar.DAY_OF_WEEK);System.out.println("week is = " + week);// 今年的第 N 天int DAY_OF_YEAR = cal.get(Calendar.DAY_OF_YEAR);System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);// 本月第 N 天int DAY_OF_MONTH = cal.get(Calendar.DAY_OF_MONTH);System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));
上面是获取一个具体时间的一些具体的信息。
Calendar不只是只能设置和获取信息,他还有计算的能力,下面就展示Calendar的计算能力
// 3小时以后cal.add(Calendar.HOUR_OF_DAY, 3);int HOUR_OF_DAY = cal.get(Calendar.HOUR_OF_DAY);System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);// 当前分钟数int MINUTE = cal.get(Calendar.MINUTE);System.out.println("MINUTE = " + MINUTE);// 15 分钟以后cal.add(Calendar.MINUTE, 15);MINUTE = cal.get(Calendar.MINUTE);System.out.println("MINUTE + 15 = " + MINUTE);// 30分钟前cal.add(Calendar.MINUTE, -30);MINUTE = cal.get(Calendar.MINUTE);System.out.println("MINUTE - 30 = " + MINUTE);
相信读者根据上面的代码测试之后,一定会感觉这个太方便了,有些定时任务,在定时刷新,就能使用这个类来做一个不小的辅助。
最后,推出它的格式化方式吧,毕竟他获得的是默认的时间格式,我们为了让时间变得可读性,我们要结合DateFormat一起使用。
String str;// 格式化显示str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(cal.getTime());System.out.println(str);// 重置 cal 显示当前时间cal.setTime(new Date());str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(cal.getTime());System.out.println(str);// 创建一个 cal 用于比较时间Calendar calNew = Calendar.getInstance();// 设定为 5 小时以前,后者大,显示 -1calNew.add(Calendar.HOUR, -5);System.out.println("时间比较:" + calNew.compareTo(cal));// 设定7小时以后,前者大,显示 1calNew.add(Calendar.HOUR, +7);System.out.println("时间比较:" + calNew.compareTo(cal));// 退回 2 小时,时间相同,显示 0calNew.add(Calendar.HOUR, -2);System.out.println("时间比较:" + calNew.compareTo(cal));
阅读全文
0 0
- 对于Java的时间操作,有你不知道的知识点
- AFNetworking详解--总有你不知道的知识点
- JAVA SE中你可能不知道的知识点
- hive你不知道的操作有哪些
- 你不知道的小知识点
- 你可能不知道的前端知识点
- es6你不知道的小知识点
- 深入JDK源码,这里总有你不知道的知识点!
- 你不知道的JAVA
- ArrayList:或许有你不知道的
- 你知道的Java,和你不知道的Java
- 你知道的Java,和你不知道的Java
- 你知道的java和你不知道的java
- 你所不知道的jdbc操作
- ios 备忘录---你可能不知道的小知识点
- CSS你可能还不知道的一些知识点
- 关于HTML你可能不知道的一些知识点
- 关于 CheckBox 你或许不知道的一些知识点
- Chrome开发者控制台中几个常用的小技巧
- java7.7
- lzo安装说明
- Calendar类set()方法的“陷阱”
- 欢迎使用CSDN-markdown编辑器
- 对于Java的时间操作,有你不知道的知识点
- 循环压缩文件夹下的文件
- Androidstudio连接真机突然无法打印Logcat
- [模板][洛谷P1516]青蛙的约会(exgcd)
- php实现将base64格式图片保存在指定目录的方法
- python(二)
- jsp
- 计算数组长度
- 数位dp