news 2026/6/10 14:21:54

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/6/10 14:09:39

2025网盘工具深度测评:直链下载技术如何重塑资源获取体验

2025网盘工具深度测评:直链下载技术如何重塑资源获取体验 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&a…

作者头像 李华
网站建设 2026/6/10 14:08:58

5个窗口管理技巧突破多任务效率瓶颈:PinWin工具全方位应用指南

5个窗口管理技巧突破多任务效率瓶颈:PinWin工具全方位应用指南 【免费下载链接】PinWin Pin any window to be always on top of the screen 项目地址: https://gitcode.com/gh_mirrors/pin/PinWin 你是否曾在设计软件与参考素材间频繁切换而打断创作思路&am…

作者头像 李华
网站建设 2026/6/10 15:46:53

芒格的“逆向思维“在颠覆性技术评估中的重要性

芒格的"逆向思维"在颠覆性技术评估中的重要性 关键词:逆向思维、颠覆性技术、查理芒格、技术评估、决策模型、创新管理、风险分析 摘要:本文探讨了投资大师查理芒格提出的"逆向思维"方法在评估颠覆性技术中的独特价值。通过系统分析…

作者头像 李华
网站建设 2026/6/10 14:51:04

旧设备复活指南:让你的Mac重获新生的系统升级之旅

旧设备复活指南:让你的Mac重获新生的系统升级之旅 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 您是否曾遇到这样的困境:手中的Mac设备功能依然完…

作者头像 李华
网站建设 2026/6/9 14:26:07

ZYNQ TTC逆向思维:用中断寄存器构建高精度事件采集系统

ZYNQ TTC逆向思维:用中断寄存器构建高精度事件采集系统 在物联网设备开发中,精确测量外部信号的时间参数往往成为系统设计的瓶颈。传统方法通常依赖专用硬件或复杂的软件算法,而ZYNQ平台的三重定时器计数器(TTC)模块提供了一种被多数开发者忽…

作者头像 李华
网站建设 2026/6/10 3:22:48

从删失数据到生存曲线:KM方法背后的统计学哲学与实践挑战

从删失数据到生存曲线:KM方法背后的统计学哲学与实践挑战 1. 生存分析中的数据不完整性本质 在临床研究和工程可靠性分析中,我们常常无法完整观察到所有研究对象从起点到终点事件的整个过程。这种数据不完整性并非研究设计的缺陷,而是现实世界…

作者头像 李华