Java8 日期、时间操作

java.time包中的是类是不可变且线程安全的。新的时间及日期API位于java.time中

java.time.LocalDate ->只对年月日做出处理

java.time.LocalTime ->只对时分秒纳秒做出处理
java.time.LocalDateTime ->同时可以处理年月日和时分秒
 
列举几种简单的用法

//获取当前日期 不含时间
LocalDate date=LocalDate.now();
System.out.println(date);//2020-9-3


// 取本月第1天:
LocalDate firstDayOfThisMonth = date.with(TemporalAdjusters.firstDayOfMonth()); // 2018-04-01
// 取本月第2天:
LocalDate secondDayOfThisMonth = date.withDayOfMonth(2); // 2018-04-02
// 取本月最后一天,再也不用计算是282930还是31
LocalDate lastDayOfThisMonth = date.with(TemporalAdjusters.lastDayOfMonth()); // 2018-04-30
// 取下一天:
LocalDate firstDayOfNextMonth = lastDayOfThisMonth.plusDays(1); // 变成了2018-05-01
// 20171月第一个周一:
LocalDate firstMondayOf2017 = LocalDate.parse("2017-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2017-01-02

//对日期格式化
DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyyMMdd");
String text = date.format(formatters);
System.out.println(text);//20200903


//分别获取年月日
int year=date.getYear();
int month=date.getMonthValue();
int day=date.getDayOfMonth();
System.out.println(year+""+month+""+day+"");//202093

//设置指定日期
LocalDate today=LocalDate.of(2010, 9, 3);
System.out.println(today);//2010-09-03

//获取当前时间 不含日期
LocalTime time=LocalTime.now();
System.out.println(time);//11:09:09.240
// 清除毫秒数:
LocalTime hm=time.withNano(0);//11:09:09
System.out.println(hm);

//获取当前日期和时间
LocalDateTime time1=LocalDateTime.now();
System.out.println(time1);//2020-09-03T14:25:44.864

//格式化日期
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dqsj=dtf2.format(time1);
System.out.println("格式化后的时间:"+dqsj);//格式化后的时间:2020-09-03 14:25:44






JDBC
最新JDBC映射将把数据库的日期类型和Java 8的新类型关联起来:
SQL -> Java
--------------------------
date -> LocalDate
time -> LocalTime
timestamp -> LocalDateTime



posted @ 2020-09-03 14:20  颂先生  阅读(520)  评论(0编辑  收藏  举报