news 2026/6/16 17:15:35

java 比较2个Date是不是同一天,越简单越好

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java 比较2个Date是不是同一天,越简单越好

以下是几种简单的方法比较两个Date是否为同一天:

方法1:Java 8+ 使用 LocalDate(推荐)

import java.time.LocalDate; import java.time.ZoneId; import java.util.Date; public boolean isSameDay(Date date1, Date date2) { LocalDate localDate1 = date1.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDate(); LocalDate localDate2 = date2.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDate(); return localDate1.isEqual(localDate2); }

方法2:Java 8+ 简化版

import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.util.Date; public boolean isSameDay(Date date1, Date date2) { return LocalDate.ofInstant(date1.toInstant(), ZoneId.systemDefault()) .equals(LocalDate.ofInstant(date2.toInstant(), ZoneId.systemDefault())); }

方法3:使用 Calendar(Java 7及之前)

import java.util.Calendar; import java.util.Date; public boolean isSameDay(Date date1, Date date2) { Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2); return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) && cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH); }

方法4:使用 SimpleDateFormat(最简短)

import java.text.SimpleDateFormat; import java.util.Date; public boolean isSameDay(Date date1, Date date2) { SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd"); return fmt.format(date1).equals(fmt.format(date2)); }

方法5:一行代码版(Java 8+)

public boolean isSameDay(Date date1, Date date2) { return date1.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate() .equals(date2.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate()); }

测试示例

public static void main(String[] args) { Date date1 = new Date(); // 当前时间 Date date2 = new Date(); // 当前时间 Date date3 = new Date(date1.getTime() + 24 * 60 * 60 * 1000); // 明天 System.out.println(isSameDay(date1, date2)); // true System.out.println(isSameDay(date1, date3)); // false }

推荐方案

  • Java 8及以上:使用方法1,代码清晰且性能好

  • Java 7及以下:使用方法3(Calendar)或方法4(SimpleDateFormat)

  • 追求极致简洁:使用方法4的SimpleDateFormat版本,虽然创建了格式化对象,但代码最简短

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

JavaQuestPlayer:QSP游戏引擎技术解析

JavaQuestPlayer:QSP游戏引擎技术解析 【免费下载链接】JavaQuestPlayer 项目地址: https://gitcode.com/gh_mirrors/ja/JavaQuestPlayer 技术架构概述 JavaQuestPlayer采用分层架构设计,底层基于Java Native Interface(JNI&#xf…

作者头像 李华
网站建设 2026/6/10 2:05:44

短视频创作利器:Live Avatar一键生成数字人内容

短视频创作利器:Live Avatar一键生成数字人内容 1. 引言:数字人时代的短视频新范式 你有没有想过,只需要一张照片、一段音频和几句描述,就能让一个“数字人”替你出镜,24小时不间断地生成高质量短视频?这…

作者头像 李华
网站建设 2026/6/16 3:02:42

Qwen3-0.6B容器化部署:Docker镜像定制与K8s编排实践

Qwen3-0.6B容器化部署:Docker镜像定制与K8s编排实践 Qwen3-0.6B 是阿里巴巴通义千问系列中轻量级但极具潜力的大语言模型,适用于边缘设备、开发测试环境以及资源受限场景下的快速推理任务。其体积小、响应快、语义理解能力均衡的特点,使其成…

作者头像 李华
网站建设 2026/6/10 2:01:33

Z-Image-Turbo动态范围调整:高光与阴影细节优化实战方法

Z-Image-Turbo动态范围调整:高光与阴影细节优化实战方法 在AI图像生成领域,画面的视觉平衡至关重要。即使构图和风格都令人满意,如果亮部过曝、暗部死黑,整体质感依然会大打折扣。阿里通义推出的Z-Image-Turbo WebUI模型&#xf…

作者头像 李华
网站建设 2026/6/12 16:37:49

3分钟掌握原神120帧解锁:让你的游戏体验焕然一新

3分钟掌握原神120帧解锁:让你的游戏体验焕然一新 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 还在为原神60帧的限制而烦恼吗?想要获得更流畅的游戏体验和性能提…

作者头像 李华
网站建设 2026/6/15 13:57:06

麦橘超然SSH远程访问设置,本地浏览器流畅操作

麦橘超然SSH远程访问设置,本地浏览器流畅操作 1. 引言:为什么需要远程访问AI绘图服务? 你有没有遇到过这种情况:好不容易在服务器上部署了一个强大的AI图像生成工具,结果只能通过命令行看日志,没法直观地…

作者头像 李华