news 2026/10/15 22:14:51

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/10/11 19:09:33

从Excel到知识网络:SmartKG零代码智能图谱构建全攻略

从Excel到知识网络:SmartKG零代码智能图谱构建全攻略 【免费下载链接】SmartKG This project accepts excel files as input which contains the description of a Knowledge Graph (Vertexes and Edges) and convert it into an in-memory Graph Store. This proje…

作者头像 李华
网站建设 2026/10/15 17:29:17

Glyph工业质检应用:缺陷图像分类系统部署案例

Glyph工业质检应用:缺陷图像分类系统部署案例 在现代制造业中,产品质量控制是决定企业竞争力的关键环节。传统的人工质检方式效率低、成本高,且容易受主观因素影响。随着AI技术的发展,智能视觉检测逐渐成为工业自动化的重要组成部…

作者头像 李华
网站建设 2026/10/15 15:43:03

如何监控fft npainting lama GPU占用?nvidia-smi使用指南

如何监控fft npainting lama GPU占用?nvidia-smi使用指南 1. 引言:为什么需要监控GPU资源? 你是不是也遇到过这种情况:启动 fft npainting lama 图像修复系统后,点下“开始修复”,结果等了半分钟还没反应…

作者头像 李华
网站建设 2026/10/14 20:10:00

Z-Image-Turbo真实感生成实战:人物肖像文生图详细教程

Z-Image-Turbo真实感生成实战:人物肖像文生图详细教程 1. 为什么这个模型值得你立刻上手? 如果你正在找一个既能跑在消费级显卡上,又能生成高保真人物肖像的文生图模型,那Z-Image-Turbo可能是目前最值得关注的选择之一。它来自阿…

作者头像 李华
网站建设 2026/10/15 16:30:30

Qwen3-1.7B实战体验:从0搭建AI对话系统

Qwen3-1.7B实战体验:从0搭建AI对话系统 1. 引言:为什么选择Qwen3-1.7B? 你是不是也经常在想,怎么才能快速搭一个属于自己的AI对话助手?不是那种只能回答“你好”的玩具模型,而是真能干活、会思考、还能扩…

作者头像 李华