java 8 时间处理

获取日期

LocalDate localDate = LocalDate.now();//当前日期
LocalTime localTime = LocalTime.now();//当前时间
LocalDateTime localDateTime = LocalDateTime.now();//当前日期时间
LocalDate date1 =  LocalDate.parse("2019-01-01");
LocalDate date2 = LocalDate.of(2019,01,01);

时间加减操作

//一般操作
LocalDateTime time1 = localDateTime.plus(1,ChronoUnit.DAYS);
LocalDateTime time2 = localDateTime.minus(1, ChronoUnit.DAYS);
/**
ChronoUnit有很多参数选择,年、月、日、时、分、秒、毫秒、星期几
等等甚至还有半天,基本满足所有的加减需求
**/

特殊需求

LocalDateTime time1 = localDateTime.with(TemporalAdjusters.firstDayOfMonth());//获取月份的第一天
/**
TemporalAdjusters也有很多参数,当月第一天,当年第一天,当月最后一天等等基本满足特殊需求,用户也可以通过传递行为参数获取自己想要的结果
**/
列:
LocalDateTime time1 = localDate.with(temporal -> temporal.with(DAY_OF_MONTH, temporal.range(DAY_OF_MONTH).getMaximum()));
LocalDateTime time1 = localDate.with(TemporalAdjusters.lastDayOfMonth());
//这两个方法都是获取月份的最后一天
TemporalAdjusters参数
dayOfWeekInMonth当月第x星期x
next/previous 下/上一个个星期x
nextOrSame下一个相同的星期x

日期格式化

//请求日期格式化
String str = "2008年08月23日 23:59:59";
DateTimeFormatter fromate= DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
LocalDateTime date= LocalDateTime.parse(str,fromate);
//返回日期格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
LocalDateTime date = LocalDateTime.now();
String dateStr = formatter.format(date);

你可能感兴趣的:(java 8 时间处理)