news 2026/4/18 10:08:10

LocalDate,LocalDateTime,Date,日期串相互转换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LocalDate,LocalDateTime,Date,日期串相互转换

LocalDate,LocalDateTime,Date,日期串相互转换

1. 获取当前时间 XXX.now()

publicvoidtestCurrentDate(){LocalDatecurLocalDate=LocalDate.now();System.out.println("地心侠士: "+curLocalDate.toString());LocalTimecurLoacalTime=LocalTime.now();System.out.println("地心侠士: "+curLoacalTime.toString());LocalDateTimecurLocalDateTime=LocalDateTime.now();System.out.println("地心侠士: "+curLocalDateTime.toString());InstantcurInstant=Instant.now();System.out.println("地心侠士: "+curInstant.toString());}

输出结果

地心侠士: 2026-02-04 地心侠士: 17:15:59.715639800 地心侠士: 2026-02-04T17:15:59.715639800 地心侠士: 2026-02-04T09:15:59.715639800Z

说明:

  • LocalDate,LocalTime,LocalDateTime都是当前时区对应日期或时间
  • Instant获取到的是UTC+0 日期和时间
  • Z代表零时区(UTC+0)T日期和时间的分割符

2. 时间戳转成LocalDateTime

publicvoidtestTimestamp(){LongtimeStamp=1769577638767L;Instantinstant=Instant.ofEpochMilli(timeStamp);System.out.println("地心侠士: "+instant.toString());LocalDateTimecvLocalDate=LocalDateTime.ofInstant(instant,ZoneId.systemDefault());System.out.println("地心侠士: "+cvLocalDate.toString());LocalDateTimelocalDateT1=LocalDateTime.ofEpochSecond(timeStamp/1000,0,ZoneOffset.ofHours(8));System.out.println("地心侠士: "+localDateT1.toString());}

输出结果

地心侠士: 2026-01-28T05:20:38.767Z 地心侠士: 2026-01-28T13:20:38.767 地心侠士: 2026-01-28T13:20:38

说明:

  • 使用方法 LocalDateTime.ofInstant 或者 LocalDateTime.ofEpochSecond
  • 使用 ofInstant ,毫秒时间戳可以直接使用
  • 使用 ofEpochSecond ,毫秒时间戳需要除以1000
  • ofInstant 使用 ZoneId.systemDefault() 获取当时区
  • OfEpochSecond 使用 ZoneOffset.ofHours(8) 指定需要的时区
  • ZoneId.systemDefault() 当前时区,等同的有ZoneId.of("Asia/Shanghai")ZoneId.of("GMT+8")ZoneId.of("UTC+08:00")ZoneId.of("+08:00")

3. 时间串转换成LocalDateTime

publicvoidtestDateStr(){DateTimeFormatterdf=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");StringdateStr="2026-01-28 18:20:38.767";LocalDateTimelocalDateTime=LocalDateTime.parse(dateStr,df);System.out.println("地心侠士: "+localDateTime.toString());LocalDateTimedefaultParse=LocalDateTime.parse("2026-01-28T18:20:38");System.out.println("地心侠士: "+defaultParse.toString());DateTimeFormatterBuilderdfBuild=newDateTimeFormatterBuilder();DateTimeFormatterdynmicDf=dfBuild.appendPattern("yyyy-MM-dd").optionalStart().appendLiteral(' ').optionalEnd().optionalStart().appendLiteral('T').optionalEnd().appendPattern("HH:mm:ss").toFormatter();LocalDateTimedynamic1=LocalDateTime.parse("2026-01-28T18:20:38",dynmicDf);System.out.println("地心侠士: "+dynamic1.toString());LocalDateTimedynamc2=LocalDateTime.parse("2026-01-28 18:20:38",dynmicDf);System.out.println("地心侠士: "+dynamc2.toString());}

输出结果:

地心侠士: 2026-01-28T18:20:38.767 地心侠士: 2026-01-28T18:20:38 地心侠士: 2026-01-28T18:20:38 地心侠士: 2026-01-28T18:20:38

说明:

  • 使用方法LocalDateTime.parse结合DateTimeFormatter转换
  • 默认转换格式为yyyy-MM-ddTHH:mm:ss
  • 使用DateTimeFormatterBuilder可以实现多种日期串转换成LocalDateTime

4. LocalDateTime转换成成LocalDate和Date

publicvoidtestDateConvert(){LocalDateTimedt=LocalDateTime.now();System.out.println("地心侠士 "+dt.toString());System.out.println("LocalDateTime=>LocalDate");LocalDatelocalDate=dt.toLocalDate();System.out.println("地心侠士 "+localDate.toString());System.out.println("LocalDateTime=>Date");Instantinstant=dt.toInstant(ZoneOffset.ofHours(8));Dated=Date.from(instant);System.out.println("地心侠士 "+d);}

输出结果:

地心侠士 2026-02-06T19:09:35.092605300 LocalDateTime=>LocalDate 地心侠士 2026-02-06 LocalDateTime=>Date 地心侠士 Fri Feb 06 19:09:35 CST 2026

5. Date 转换成LocalDateTime

publicvoidtestDateConvert2(){Datedate=newDate();System.out.println("地心侠士 "+date.toString());System.out.println("Date=>LocalDateTime");Instantinstant=date.toInstant();LocalDateTimelcd=LocalDateTime.ofInstant(instant,ZoneId.systemDefault());System.out.println("地心侠士 "+lcd.toString());}

输出结果:

地心侠士 Fri Feb 06 19:15:38 CST 2026 Date=>LocalDateTime 地心侠士 2026-02-06T19:15:38.122

6. 北京时间时区表示

publicvoidtestZone(){ZoneIdzonidGMT8=ZoneId.of("GMT+8");LocalDateTimegmt8=LocalDateTime.ofInstant(Instant.now(),zonidGMT8);System.out.println("地心侠士: "+gmt8.toString());ZoneIdzonidAS=ZoneId.of("Asia/Shanghai");LocalDateTimeas=LocalDateTime.ofInstant(Instant.now(),zonidAS);System.out.println("地心侠士: "+as.toString());ZoneIdzonidUTC8=ZoneId.of("UTC+08:00");LocalDateTimeutc=LocalDateTime.ofInstant(Instant.now(),zonidUTC8);System.out.println("地心侠士: "+utc.toString());ZoneIdzonid8=ZoneId.of("+08:00");LocalDateTimead8=LocalDateTime.ofInstant(Instant.now(),zonid8);System.out.println("地心侠士: "+ad8.toString());}

输出结果:

地心侠士: 2026-02-06T18:35:26.921795200 地心侠士: 2026-02-06T18:35:26.928776600 地心侠士: 2026-02-06T18:35:26.928776600 地心侠士: 2026-02-06T18:35:26.928776600

原文地址:https://mp.weixin.qq.com/s/vH0TJKl89CfV3ehvHllgNg

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:52:12

番茄小说下载器:多格式内容处理实现与技术架构解析

番茄小说下载器:多格式内容处理实现与技术架构解析 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 番茄小说下载器是一款专注于网络小说内容获取与转换的开源工具&…

作者头像 李华
网站建设 2026/4/18 7:37:08

AI驱动知识管理的ROI怎么算?AI应用架构师的量化评估框架

深入解析AI驱动知识管理的ROI计算及AI应用架构师量化评估框架 摘要/引言 在当今数字化时代,企业积累了海量知识,如何高效管理这些知识成为提升竞争力的关键。AI驱动的知识管理应运而生,然而,企业在投入资源构建相关系统时&#xf…

作者头像 李华
网站建设 2026/4/18 8:46:14

企业级文档管理开源解决方案:零代码配置实战指南

企业级文档管理开源解决方案:零代码配置实战指南 【免费下载链接】document-management-system OpenKM is a Open Source Document Management System 项目地址: https://gitcode.com/gh_mirrors/do/document-management-system 中小企业文档管理面临诸多挑战…

作者头像 李华
网站建设 2026/4/17 9:12:22

当‘轻量化‘遇见‘高并发‘:Easysearch在中小型企业中的生存法则

当"轻量化"遇见"高并发":Easysearch在中小型企业中的生存法则 对于资源有限却面临复杂业务场景的中小企业技术负责人来说,如何在预算与性能之间找到平衡点,始终是个棘手难题。想象一下,当电商秒杀活动带来流量…

作者头像 李华
网站建设 2026/4/18 6:39:52

为什么你的Dify插件无法通过官方Market审核?——基于2026.1.0合规白皮书的12项强制校验清单(附自动检测脚本)

第一章:Dify 2026插件市场审核失败的典型归因分析Dify 2026插件市场对安全性、兼容性与功能完备性设定了更严格的准入门槛,审核失败率较前代提升约37%。深入分析近三个月被拒插件样本发现,失败原因高度集中于四类核心问题,而非随机…

作者头像 李华