java8时间转换函数学习,教你脱离jdf转换的痛苦

来源:互联网 发布:单片机工作过程 编辑:程序博客网 时间:2024/06/07 23:37

java8中提供的一批新的时间函数给开发者使用,有了这些时间转换函数,码农们再也不用担心繁杂的时间转换问题了;

 新的时间函数所在包为:java.Time;日常开发中用到最多的函数可以分为三种:

(1)处理日期的:LocalDate; 

LocalDate nowDay = LocalDate.now(); //获取系统当前时间的日期 如:2017-03-11
LocalDate 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为例;
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());
boolean leapYear = nowDay.isLeapYear(); //判断当前所在年是否为闰年
以上函数足以满足日常开发中所用到的年,月,天,星期,月长,年长和是否为闰年等各种开发需求;

(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,一个方法即可搞定。




0 0
原创粉丝点击