给力小青年|LocalDate、LocalDateTime、Date之间相互转换
为了满足程序员和机器对时间的处理 , java8新增了一些关于日期的和时间的API
LocalDate , LocalDateTime , LocalTime 这些主要是便于程序员阅读使用的 ,
Instant 这个主要是便于机器处理的
Duration:主要用于以秒和纳秒衡量时间长短
Period:主要用于以LocalDate衡量时间长短的
1.LocalDate、LocalTime、LocalDateTime之间的转换关系
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、时间戳之间的转换
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"));
推荐阅读
- 给力小青年|余承东放出猛料,华为或可以牵桥搭线,取得中国芯的“最快路径”
- 给力小青年|取得中国芯的“最快路径”,余承东放出猛料,华为或可以牵桥搭线
- 小青年欢乐多|注意郎朗的举动,嫁人就要嫁给这样的男人,吉娜穿长裙走路不方便
- 给力小青年|可视化利器Grafana简单安装教程
- 给力小青年|影楼互联网营销五个步骤,客户源源不断
- 给力小青年|两大巨头相继行动,华为这次或许也无能为力,芯片被断后
- 给力小青年|芯片被断后,两大巨头相继行动,华为这次或许也无能为力
- 给力小青年|Space X再发射一枚猎鹰9号火箭 将60颗Starlink卫星送入轨道
- 给力小青年|华为打造智能手表全新设计,屏幕尺寸增加,续航长达10天
- 给力小青年|NAS+4K机顶盒,零刻GS-King X,家庭娱乐中心评测
