localdate和localdatetime互转_datetimeformatter.ofpattern

localdate和localdatetime互转_datetimeformatter.ofpatternLocalDateTime及LocalDate是Java8的新特性,有时为了兼容Date类型需要进行转换。今天的项目就有一个需求是实现一个函数能够计算出当天在一年中的第多少天,通过搜索找到java8有LocalDateTime类就能够实现这个需求。但是需要进行时间类型的转换工作。这里把LocalDateTimeLocalDate和Date之间的转换进行了整理,方便大家使用。转换方法LocalDateTime转LocalDateLocalDate转LocalD

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目录

使用背景

 转换方法

LocalDateTime 转 LocalDate

LocalDate 转 LocalDateTime

LocalDate 转 Date

Date转LocalDate 

LocalDateTime转Date

Date 转 LocalDateTime

现在LocalDateTime、LocalDate、Date之间的相互转换就完成了


使用背景

LocalDateTime 及 LocalDate 是 Java8 的新特性,有时为了兼容 Date 类型需要进行转换。

今天的项目就有一个需求是实现一个函数 能够计算出当天在一年中的第多少天,通过搜索找到java8有LocalDateTime类就能够实现这个需求。但是需要进行时间类型的转换工作。

这里把LocalDateTime LocalDate和Date之间的转换进行了整理,方便大家使用。

        LocalDateTime now = LocalDateTime.now();
        int dayOfYear = now.getDayOfYear();
        System.out.println(dayOfYear);

 转换方法

LocalDateTime 转 LocalDate

LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();

LocalDate 转 LocalDateTime

一般调用 atTime() 方法进行赋值

LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime1 = localDate.atStartOfDay();
LocalDateTime localDateTime2 = localDate.atTime(8,20,33);
LocalDateTime localDateTime3 = localDate.atTime(LocalTime.now());

LocalDate 转 Date

先调用 atStartOfDay() 方法转 LocalDateTime 再转 Date

LocalDate localDate = LocalDate.now();
ZoneId zoneId = ZoneId.systemDefault();
Date date = Date.from(localDate.atStartOfDay().atZone(zoneId).toInstant());

Date转LocalDate 

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

LocalDateTime转Date

在LocalDateTime 转 Date 时,需要使用到 Java 8的几个类

  • ZoneId/ZoneOffset:表示时区
  • ZonedDateTime: 表示特定时区的日期和时间
  • Instant:表示时刻,不直接对应年月日信息,需要通过时区转换
//d当前时间
LocalDateTime localDateTime = LocalDateTime.now();
//系统的默认时区
ZoneId zoneId = ZoneId.systemDefault();
//时区的日期和时间
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
//获取时刻
Date date = Date.from(zonedDateTime.toInstant());
System.out.println("格式化前:localDateTime:" + localDateTime + "  Date:" + date);
//格式化LocalDateTime、Date
DateTimeFormatter localDateTimeFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("格式化后:localDateTime:" + localDateTimeFormat.format(localDateTime) + "  Date:" + dateFormat.format(date));

输出结果如下:

格式化前:localDateTime:2022-10-27T11:35:09.969  Date:Tue Oct 27 11:35:09 CST 2022
格式化后:localDateTime:2022-10-27 11:35:09  Date:2022-10-27 11:35:09

Date 转 LocalDateTime

先转 ZonedDateTime 再转 LocalDateTime

Date date = new Date();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = date.toInstant().atZone(zoneId).toLocalDateTime();

现在LocalDateTime、LocalDate、Date之间的相互转换就完成了

localdate和localdatetime互转_datetimeformatter.ofpattern

 

如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188980.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • How do I obtain a Digital Certificate from my Certificate Authority (CA)?

    How do I obtain a Digital Certificate from my Certificate Authority (CA)?

    2021年6月20日
    94
  • linux文件重命名rename「建议收藏」

    linux文件重命名rename「建议收藏」linux下rename提供了有效的方法来处理重命名1.修改后缀名(eg.将当前目录下以.log为后缀的文件为以.txt为后缀)rename.log.txt*.logorrename’s/.log$/.txt/’*.log2.删除后缀名(eg.将当前目录下.txt文件的后缀)rename’s/.txt$//’*.txt3.添加后缀名(eg.给当前目录下的

    2022年9月10日
    0
  • 解决FileSystemWatcher事件多次触发的方法

    解决FileSystemWatcher事件多次触发的方法

    2021年8月6日
    55
  • 低噪放大器

    0引言在雷达射频接收系统中,对系统性能指标的要求越来越高,其中低噪声放大器是影响着整个接收系统的噪声指标的重要因素。与普通的放大器相比,低噪声放大器作用比较突出,一方面可以减少系统的杂波干扰,提高系统的灵敏度;另一方面可以放大系统的射频信号,保证系统正常工作。因此,低噪声放大器的性能制约着整个接收系统的性能,对整个接收系统性能的提高起了决定性的作用。因此,研制宽频带、高性能、更低噪声的放大器

    2022年4月6日
    68
  • Python 递归的多种写法

    Python 递归的多种写法题目背景:让我们来看一些例子。要对一个数字列表(或者其他序列)求和,我们可以使用内置的sum函数,或者自己编写一个更加定制化的版本。这里是用递归编写的一个定制求和函数的示例defmysum(L): ifnotL: return0 else: returnL[0]+mysum(L[1:])这是一种最基本的递归写法,通过递归的方式将列表中的所有进行相加,典型的鸭子类型…

    2022年6月16日
    33
  • 2022最新前端经典面试试题[通俗易懂]

    1,阐述清楚浮动的几种方式(常见问题)(1)父级div定义height原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。优点:简单、代码少、容易掌握缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题(2)父级div定义overflow:hidden原理:必须定义width或zoom:1,同时不能定义heigh…

    2022年4月14日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号