java date和localdate_Java8 Date与LocalDate互转

Java8 Date与LocalDate互转

reference:https://blog.csdn.net/panchang199266/article/details/95724991

Java8 日期时间API,新增了LocalDate、LocalDateTime、LocalTime等线程安全类:

LocalDate:只有日期,诸如:2019-07-13

LocalTime:只有时间,诸如:08:30

LocalDateTime:日期+时间,诸如:2019-07-13 08:30

1.Date转换成LocalDate

public static LocalDate date2LocalDate(Date date) {

if(null == date) {

return null;

}

return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

}

2.LocalDate转换成Date

public static Date localDate2Date(LocalDate localDate) {

if(null == localDate) {

return null;

}

ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());

return Date.from(zonedDateTime.toInstant());

}

2.LocalDateTime转换成Date

public static Date localDateTime2Date(LocalDateTime localDateTime) {

return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());

}

3.LocalDate格式化

public static String formatDate(Date date) {

LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

return localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

}

Java8 Date与LocalDate互转 相关文章

Java8新特性之新日期API

早期的日期 API 在早期也就是 Java 8 之前,JDK 原生比较有名的有两个类: Date 类 Calendar 类 这两个类相对来说用起来是比较困难的,之前我们往往是用的第三方的库。 新日期 API 的引入 在我们业界来说,这两个有两个很致命的问题: Date 类 和 Calendar

【mysql锁】for update定义

for update是一种行级锁,又叫排它锁,一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用

ES进行date_histogram时间聚合,聚合结果时间不正确问题

在做项目中,有一个需求是统计本周内每天的漏洞数量,我选用的是ES中的date_histogram函数来进行聚合统计; 但是出现了一个问题,聚合出来的结果和想要统计的结果时间不一致,如下图所示 时间区间过滤8号到14号,应该显示7个时间段,结果却显示出8个时间段分

Element-ui踩坑记录 DatePicker日期选择器清除后报错

报错信息:[Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘0’ of null” 在使用DatePicker日期选择器选择日期范围的时候,会用到一个属性 clearable 。这个属性是 Boolean 变量,用于决定是否显示清除按钮,默认为 true 。 el-dat

Java8中的Lambda表达式

前言 Lambda 表达式是 Java 8 最受欢迎的功能。人们将函数式编程的概念引入了 Java 这门完全面向对象的命令式编程语言。关于函数式编程是如何运作的,这个话题超出了本文的范围,不过我们会提炼出它一个明显有别于我们所经常使用的 OOP (面向对象编程)的功

ArrayBlockingQueue源码分析-Java8

ArrayBlockingQueue原理介绍 ArrayBlockingQueue,是基于数组的阻塞队列,队列中的元素按照FIFO顺序。 创建ArrayBlockingQueue,是需要制定队列的容量的(不可省);指定队列容量后,会一次性创建capacity个长度的数组,用来存放队列元素; 需要注意的是,Ar

LinkedBlockingQueue源码解析-Java8

LinkedBlockingQueue基本原理介绍 LinkedBlockingQueue是基于链表实现的阻塞队列,需要注意的是LinkedBlockingQueue是带头结点的队列(头结点不存真实数据,存的数据为null)。 在LinkedBlockingQueue中,元素是按照先进先出的顺序(FIFO),但需要注意的是

python datetime用法

python datetime的使用 时间的用法 import datetimeprint(datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=8)))) #带时区时间print(datetime.datetime.now()) # timezone=none 无时区时间print(datetime.datetime.utcnow()) #utc时间stam

Java8新特性:LambdaStream

lambda 概念:lambda表达式从本质上讲,是一个匿名函数。可以使用这个匿名函数,以简洁的方式来实现接口中的方法,从而简化代码。 使用场景:简化接口使用。使用接口的方式有多种,如实现类、匿名内部类等,对于lambda表达式而言,可以达到同样的效果,且代

Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)

内容简介 本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。 List对象类(StudentInfo) public class StudentInfo implements ComparableStudentInfo { //名称 private String name; //性别 true男 fal

Java中,`Date`和`LocalDate`是两个不同的日期时间处理类。`Date`是旧版Java中的日期和时间表示,而`LocalDate`则是Java 8引入的,属于`java.time`包下的现代日期模型。 **Date**类代表的是从1970年1月1日(UTC/GMT的午夜)开始的毫秒数,不包含时区信息,它容易受到系统时钟影响,不推荐在新项目中使用。 **LocalDate**类则是一个纯粹的日期部分,没有时间或时区,它是基于历法的,提供了很多现代日期操作,如计算年、月、日等。 要将`Date`换为`LocalDate`,你需要一个`ZonedDateTime`作为桥梁,因为`Date`不包含时区信息。这里是一个示例: ```java import java.time.LocalDate; import java.time.ZonedDateTime; import java.util.Date; public LocalDate convertToDate(LocalDate date) { // 假设你的系统时区 ZoneId zone = ZoneId.systemDefault(); ZonedDateTime zonedDateTime = ZonedDateTime.of(date, zone); return zonedDateTime.toLocalDate(); // 将ZonedDateTime换为LocalDate } // 如果你有一个Date对象 Date dateObj = ...; LocalDate localDate = convertToDate(dateObj.toInstant().atZone(zone).toLocalDate()); ``` 反过来,将`LocalDate`换为`Date`通常不需要,但如果你坚持,可以通过`Instant`和`Date`构造函数: ```java Date toDate(LocalDate date) { Instant instant = date.atStartOfDay(ZoneId.systemDefault()).toInstant(); return Date.from(instant); // 注意,Date已被弃用,仅用于兼容旧代码 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值