Local快速上手
java中Local时间类型的使用
简单说说
localdateTime是JDK1.8中新加的API,他拥有线程安全等等好处!!!
基本Api的使用
System.out.println("-----------时间日期类型----------------------");
LocalDateTime now = LocalDateTime.now();
log.info("现在:{}",now);
log.info("现在时间5分钟后:{}",now.plusMinutes(10));
log.info("现在时间5分钟前:{}",now.minusMinutes(10));
System.out.println("-----------日期类型----------------------");
LocalDate date = LocalDate.now();
log.info("现在日期:{}",date);
log.info("现在日期+1day:{}",date.plusDays(1));
System.out.println("-------------时间类型---------------------");
LocalTime time = LocalTime.now();
log.info("现在时间:{}",time);
log.info("现在时间+1min:{}",time.plusMinutes(10));
System.out.println("------------------相差几天----------------");
long days = Duration.between(LocalDateTime.now(), LocalDateTime.now().plusDays(1)).toDays();
log.info("相差:{}",days);
System.out.println("------------------时间位置统计----------------------");
System.out.println(now.getDayOfYear());
System.out.println(now.getDayOfMonth());
System.out.println(now.getDayOfWeek());
System.out.println("--------------------时间范围计算---------------------------");
LocalTime end = LocalTime.of(22, 30);
LocalTime str = LocalTime.of(8, 30);
LocalTime play = LocalTime.of(22, 31);
if (play.isBefore(str)||play.isAfter(end)){
System.out.println("超出时间");
}
System.out.println("-----------------------data与localz转换-------------------------");
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = now.atZone(zoneId);
Instant instant = zonedDateTime.toInstant();
Date d = Date.from(instant);
log.info("lcoal->data:{}",d);
//Date转换成LocalDateTime
Date date1 = new Date();
Instant instant1 = date1.toInstant();
ZoneId zoneId1 = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant1, zoneId1);
log.info("data ->lcoal:{}",localDateTime);
运行结果
-----------时间日期类型----------------------
17:36:10.126 [main] INFO test - 现在:2023-03-30T17:36:10.126
17:36:10.126 [main] INFO test - 现在时间5分钟后:2023-03-30T17:46:10.126
17:36:10.126 [main] INFO test - 现在时间5分钟前:2023-03-30T17:26:10.126
-----------日期类型----------------------
17:36:10.126 [main] INFO test - 现在日期:2023-03-30
17:36:10.126 [main] INFO test - 现在日期+1day:2023-03-31
-------------时间类型---------------------
17:36:10.126 [main] INFO test - 现在时间:17:36:10.126
17:36:10.126 [main] INFO test - 现在时间+1min:17:46:10.126
------------------相差几天----------------
17:36:10.126 [main] INFO test - 相差:1
------------------时间位置统计----------------------
89
30
THURSDAY
--------------------时间范围计算---------------------------
超出时间
-----------------------data与localz转换-------------------------
17:36:10.126 [main] INFO test - lcoal->data:Thu Mar 30 17:36:10 CST 2023
17:36:10.126 [main] INFO test - data ->lcoal:2023-03-30T17:36:10.126
前端与后端时间格式的数据
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime createTime;
DateTimeFormat主要是用于前端给后端传递值的时候使用,如果是字段是在请求体中,则失效!!!
JsonFormat可以前端传时间时使用,也可以是后端传给前端时使用