网站首页 > 基础教程 正文
为了满足程序员和机器对时间的处理,java8新增了一些关于日期的和时间的API
LocalDate,LocalDateTime,LocalTime 这些主要是便于程序员阅读使用的,
Instant 这个主要是便于机器处理的
Duration:主要用于以秒和纳秒衡量时间长短
Period:主要用于以LocalDate衡量时间长短的
1.LocalDate、LocalTime、LocalDateTime之间的转换关系
// LocalDateTime 转 LocalDate
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();
// LocalDateTime 转 LocalTime
LocalDateTime localDateTime = LocalDateTime.now();
LocalTime localTime = localDateTime.toLocalTime();
// LocalDate 转 LocalDateTime
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toLocalDateTime();
// LocalDate、LocalTime 转 LocalDateTime
LocalDate localDate = LocalDate.now();
LocalTime localtime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.of(localDate,localTime);
2、Date、Instant、时间戳之间的转换
//Date 转 LocalDateTime
Date date = new Date();
LocalDateTime localDateTime = date.toInstant().atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
//LocalDate 转 Date
LocalDate localDate = LocalDate.now();
Date nowDate = Date.from(localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant());
//LocalDateTime 转 Date
LocalDateTime 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();
//时间戳 转换为LocalDateTime
LocalDateTime.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)
4.时间的格式化
// localDate => String
LocalDate localDate = LocalDate.now();
String nowDate = localDate.format(DateTimeFormatter.ofPattern("YYYY-MM-dd"));
//String => LocalDate
String nowDateStr = "2020-08-16";
LocalDate nowLocalDate = LocalDate.parse(nowDateStr,DateTimeFormatter.ofPattern("YYYY-MM-dd"));
猜你喜欢
- 2024-10-23 Java Date 转 LocalDate javadate转localdate
- 2024-10-23 java date对象的正确使用方法 java中date
- 2024-10-23 「案例学习」Java8 日期时间 「案例学习」Java8 日期时间范围
- 2024-10-23 SpringBoot反序列化LocalDateTime总失败
- 2024-10-23 Java 8 LocalDate类入门实战:初学者必读的用法详解与概念梳理
- 2024-10-23 Java 计算日期属于当月第几周(日期周计算)
- 2024-10-23 SpringBoot中时间戳和LocalDate相关的接收和转换
- 2024-10-23 从LocalDateTime序列化探讨全局一致性序列化
- 2024-10-23 面试必备:ThreadLocal详解 threadlocale
- 2024-10-23 Java,java.time.LocalDate,根据具体的时间,每一日(天)递增
- 最近发表
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- mysql教程 (60)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)