当前位置: 首页 > news >正文

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

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

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

public void testCurrentDate() {LocalDate curLocalDate = LocalDate.now();System.out.println("地心侠士: "+curLocalDate.toString());LocalTime curLoacalTime = LocalTime.now();System.out.println("地心侠士: "+curLoacalTime.toString());LocalDateTime curLocalDateTime = LocalDateTime.now();System.out.println("地心侠士: "+curLocalDateTime.toString());Instant curInstant = 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

public void testTimestamp() {Long timeStamp = 1769577638767L;Instant instant = Instant.ofEpochMilli(timeStamp);System.out.println("地心侠士: " + instant.toString());LocalDateTime cvLocalDate = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());System.out.println("地心侠士: " + cvLocalDate.toString());LocalDateTime localDateT1 = 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

public void testDateStr() {DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");String dateStr = "2026-01-28 18:20:38.767";LocalDateTime localDateTime = LocalDateTime.parse(dateStr, df);System.out.println("地心侠士: " + localDateTime.toString());LocalDateTime defaultParse = LocalDateTime.parse("2026-01-28T18:20:38");System.out.println("地心侠士: " + defaultParse.toString());DateTimeFormatterBuilder dfBuild = new DateTimeFormatterBuilder();DateTimeFormatter dynmicDf = dfBuild.appendPattern("yyyy-MM-dd").optionalStart().appendLiteral(' ').optionalEnd().optionalStart().appendLiteral('T').optionalEnd().appendPattern("HH:mm:ss").toFormatter();LocalDateTime dynamic1 = LocalDateTime.parse("2026-01-28T18:20:38", dynmicDf);System.out.println("地心侠士: " + dynamic1.toString());LocalDateTime dynamc2 = 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

public void testDateConvert() {LocalDateTime dt = LocalDateTime.now();System.out.println("地心侠士 " + dt.toString());System.out.println("LocalDateTime=>LocalDate");LocalDate localDate = dt.toLocalDate();System.out.println("地心侠士 " + localDate.toString());System.out.println("LocalDateTime=>Date");Instant instant = dt.toInstant(ZoneOffset.ofHours(8));Date d = 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

public void testDateConvert2() {Date date = new Date();System.out.println("地心侠士 " + date.toString());System.out.println("Date=>LocalDateTime");Instant instant = date.toInstant();LocalDateTime lcd = 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. 北京时间时区表示

public void testZone() {ZoneId zonidGMT8 = ZoneId.of("GMT+8");LocalDateTime gmt8 = LocalDateTime.ofInstant(Instant.now(), zonidGMT8);System.out.println("地心侠士: " + gmt8.toString());ZoneId zonidAS = ZoneId.of("Asia/Shanghai");LocalDateTime as = LocalDateTime.ofInstant(Instant.now(), zonidAS);System.out.println("地心侠士: " + as.toString());ZoneId zonidUTC8 = ZoneId.of("UTC+08:00");LocalDateTime utc = LocalDateTime.ofInstant(Instant.now(), zonidUTC8);System.out.println("地心侠士: " + utc.toString());ZoneId zonid8 = ZoneId.of("+08:00");LocalDateTime ad8= 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

http://www.jsqmd.com/news/351009/

相关文章:

  • AT_abc360_c [ABC360C] Move It
  • 免密批量抓取日志并集中输出
  • P1057 [NOIP2008 普及组] 传球游戏 题解
  • CANN 生态安全基石:`cann-security-module` 如何构建可信 AI 执行环境
  • 备考2026执医,新课程推荐哪一个? - 医考机构品牌测评专家
  • Spring AI Alibaba 核心组件
  • CANN 生态工具链实战:用 `profiler` 项目深度优化模型性能
  • CANN 生态全景:`cann-toolkit` —— 一站式开发套件如何提升 AI 工程效率
  • 哪个执业医师课程通过率最高? - 医考机构品牌测评专家
  • 全网热议!2026年青岛实验室净化工程源头厂家排行 - 睿易优选
  • 从外包到大厂 AI 岗:我用 1 年时间踩平的 5 个职业坑
  • P7909 [CSP-J 2021] 分糖果
  • 学考赋能哪家优?泛微青蓝阁、考试星、酷学院、云学堂实力拆解
  • 低代码赋能供应商管理:打破管理壁垒,重塑供应链效能
  • CANN 生态新星:`minddata-dataset-engine` 如何加速 AI 数据 pipeline
  • 达梦数据库查重实战:多字段联合去重完整指南
  • 考临床执医,推荐听谁的课好? - 医考机构品牌测评专家
  • SSM基于J2EE的山西旅游网站的设计与实现iiqmx(软件+源码+数据库+调试部署+创建环境)带论文文档1万字以上,文末可获取,框架界面在最后面。
  • 2026中医执医刷题神器深度测评:如何选择高效备考工具? - 医考机构品牌测评专家
  • 维卡软化点与热变形试验设备:技术解析与操作指南
  • 飞牛Nas使用docker安装OpenClaw
  • audio核心技术原理全景解读
  • 决胜2026执业医师考试:一份全面的备考资料选择与使用指南 - 医考机构品牌测评专家
  • 2026年分样仪选购指南:分样精度/收集容器选择/品牌排名/性能参数深度解析 - 品牌推荐大师1
  • 2026年厦门HE封片机企业最新推荐榜:HE滴染封片机、滴染HE封片机、HE染色封片机、聚焦产品研发实力与行业服务能力深度剖析 - 海棠依旧大
  • 计时工具 Catime
  • 战术级MEMS陀螺适用于哪些领域?
  • Nginx 站点屏蔽/特定国家或地区
  • 【防坑指南 | 可以不会不能不懂】夏日开车注意事项
  • CANN赋能AIGC:深度剖析与实践,解锁智能生成新范式