java8中提供的一批新的时间函数给开发者使用,有了这些时间转换函数,码农们再也不用担心繁杂的时间转换问题了;
新的时间函数所在包为:java.Time;日常开发中用到最多的函数可以分为三种:
(1)处理日期的:LocalDate;
LocalDate nowDay = LocalDate.now(); //获取系统当前时间的日期 如:2017-03-11LocalDate nowDay = LocalDate.of(2017, 03, 18);//创建指定日期的时间函数 int year = nowDay.getYear(); //获取当前天是哪一年 Month month = nowDay.getMonth(); //获取当前天是那一月 int dayOfMonth = nowDay.getDayOfMonth();//获取当前天是该月几天int dayOfYear = nowDay.getDayOfYear();//获取当前日期是该年的第几天
DayOfWeek dayOfWeek = nowDay.getDayOfWeek();//获取当前天是周几int lengthOfMonth = nowDay.lengthOfMonth();//获取当前月总共有几天int i = startDay.lengthOfYear(); //返回当前年总共多少天
//当前日期N天之后或者之前的日期,N=1为例;boolean leapYear = nowDay.isLeapYear(); //判断当前所在年是否为闰年LocalDate endDay = LocalDate.now().plusDays(1);LocalDate localDate = LocalDate.now().minusDays(1);//日期与日期之间的大小比较 int i = startDay.compareTo(LocalDate.now()); boolean after = startDay.isAfter(LocalDate.now()); boolean before = startDay.isBefore(LocalDate.now());以上函数足以满足日常开发中所用到的年,月,天,星期,月长,年长和是否为闰年等各种开发需求;(2)处理时间的:LocalTime;
相对于日期函数,时间函数只有时分秒,下面我们来看;
LocalTime now = LocalTime.now(); //获取系统当前时分秒LocalTime startTime = LocalTime.of(06, 00, 00);//获取指定时分秒的时间int hour = now.getHour(); //当前时间所在小时int minute = now.getMinute();//当前时间所在分钟
int second = now.getSecond();//当前时间所在秒//当前时间指定N小时之前或者之后,已N=2为例; LocalTime localTime = now.plusHours(2); LocalTime localTime1 = now.minusHours(2);//当前时间指定N分钟之前或者之后,已N=2为例;LocalTime localTime3 = now.plusMinutes(2);LocalTime localTime2 = now.minusMinutes(2);//当前时间与时间的比较用法boolean after = now.isAfter(localTime1);boolean before = now.isBefore(localTime2);int i = now.compareTo(localTime);
(3)处理带时间日期的:LocalDateTime
LocalDateTime now = LocalDateTime.now();//获取系统当前日期和时间 Timestamp timestamp = Timestamp.valueOf(LocalDateTime.now()); //完成当前时间到时间戳的转换 LocalDateTime localDateTime = timestamp.toLocalDateTime(); //时间戳到当前时间的转换
LocalDateTime startDateTime = LocalDateTime.of(startDay, startTime);//通过当前日期和时间获取当前日期时间
//对带时间的日期操作加减月,周和年;
LocalDateTime localDateTime = now.plusMonths(1); LocalDateTime localDateTime1 = now.plusYears(1); LocalDateTime localDateTime5 = now.plusWeeks(1); LocalDateTime localDateTime3 = now.minusMonths(1); LocalDateTime localDateTime2 = now.minusWeeks(1); LocalDateTime localDateTime4 = now.minusYears(1);
对于带时间的日期函数,由于其可以通过日期函数和时间函数组合而获取,所以其完全支持:
对指定天数的加减;
对指定小时的加减;
对指定分钟的加减;
两个日期函数的比较;
由于调用方法基本相同不再举例;
以上为新日期函数在开发中用到的比较多的情况,还有其他比较少数情况,请参考官方API;
有了新的日期转换函数,再也不用担心时间类的操作和转换了。一个导包,java.Time,一个方法即可搞定。