网站首页 > java教程 正文
为了满足程序员和机器对时间的处理,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-12-16 ElasticSearch 最全详细使用教程 elasticsearch6教程
- 2024-12-16 20个高级Java面试题汇总 java中高级面试题及答案
- 2024-12-16 工作中Hutool包的常用方法总结 hutool工具包
- 2024-12-16 MySQL事务隔离级别详解 mysql事务隔离级别有哪些
- 2024-12-16 深入理解 ThreadLocal:原理与应用场景
- 2024-12-16 鸿蒙开源第三方组件——日期和时间处理组件JodaTime-ohos
- 2024-12-16 糟糕,被SimpleDateFormat坑到啦!
- 2024-12-16 java8日期类型属性指定格式序列化全局配置及特殊序列化
- 2024-12-16 详细介绍一下Spring Boot中对于日期时间数据类型的处理?
- 2024-12-16 Java SimpleDateFormat 基础使用这一篇足够了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)