给力小青年|LocalDate、LocalDateTime、Date之间相互转换

为了满足程序员和机器对时间的处理 , java8新增了一些关于日期的和时间的API
LocalDate , LocalDateTime , LocalTime 这些主要是便于程序员阅读使用的 ,
Instant 这个主要是便于机器处理的
Duration:主要用于以秒和纳秒衡量时间长短
Period:主要用于以LocalDate衡量时间长短的
1.LocalDate、LocalTime、LocalDateTime之间的转换关系
给力小青年|LocalDate、LocalDateTime、Date之间相互转换LocalDate、LocalTime、LocalDateTime之间的转换
// LocalDateTime 转 LocalDateLocalDateTime localDateTime = LocalDateTime.now();LocalDate localDate = localDateTime.toLocalDate();// LocalDateTime 转 LocalTimeLocalDateTime localDateTime = LocalDateTime.now();LocalTime localTime = localDateTime.toLocalTime();// LocalDate 转 LocalDateTimeLocalDate localDate = LocalDate.now();LocalDateTime localDateTime = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toLocalDateTime();// LocalDate、LocalTime 转 LocalDateTimeLocalDate localDate = LocalDate.now();LocalTime localtime = LocalTime.now();LocalDateTime localDateTime = LocalDateTime.of(localDate,localTime);2、Date、Instant、时间戳之间的转换
给力小青年|LocalDate、LocalDateTime、Date之间相互转换Date、Instant、时间戳之间的转换
//Date 转 LocalDateTimeDate date = new Date();LocalDateTime localDateTime = date.toInstant().atZone(ZoneOffset.ofHours(8)).toLocalDateTime();//LocalDate 转 DateLocalDate localDate = LocalDate.now();Date nowDate = Date.from(localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());//LocalDateTime 转 DateLocalDateTime nowDateTime = LocalDateTime.now();Date nowTimeDate = Date.from(nowDateTime.atZone(ZoneOffset.ofHours(8)).toInstant());//获取秒级时间戳 long timestamp =Instant.now().getEpochSecond();//获取毫秒级时间戳long timestamp =Instant.now().toEpochMilli() /1000;//LocalDateTime获取秒级时间戳localDateTime.toInstant(ZoneOffset.ofHours(8)).getEpochSecond();//LocalDate 获取秒级时间戳localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().getEpochSecond();//时间戳 转换为LocalDateTimeLocalDateTime.ofInstant(Instant.ofEpochSecond(timestamp),ZoneId.of("+8"));3.时间之间的长短计算
//两个日期之间相差多少秒long seconds = Duration.between(LocalDateTime.now(),LocalDateTime.now().plusDays(1)).get(SECONDS);//两个日期之间相差多少天long days =Period.between(LocalDate.now(),LocalDate.now().plusDays(1)).get(DAYS)【给力小青年|LocalDate、LocalDateTime、Date之间相互转换】4.时间的格式化
// localDate => StringLocalDate localDate = LocalDate.now();String nowDate = localDate.format(DateTimeFormatter.ofPattern("YYYY-MM-dd"));//String => LocalDateString nowDateStr = "2020-08-16";LocalDate nowLocalDate = LocalDate.parse(nowDateStr,DateTimeFormatter.ofPattern("YYYY-MM-dd"));


    推荐阅读