如何在Java中检查2个日期是否在同一天

2023-12-14

我有 2 个日期变量,Date1 和 Date2。 我想检查日期 1 是否与日期 2 属于同一日期(但允许它们有不同的时间)。

我该怎么做呢?

这看起来是一件很容易做的事情,但我却很困难。

编辑:我想避免外部库和东西

编辑: 我最初的想法是删除小时、分钟、秒,但这些功能在 Java 中被标记为已弃用。那我应该用什么呢????


尽管给出的答案是基于日期组成部分java.util.Date在很多方面都足够了,我想强调一点java.util.Date is NOT日期,而是一种以毫秒为单位的 UNIX 时间戳。这样做的后果是什么?

仅日期比较Date-时间戳将取决于上下文的时区。例如,在 UTC 时区中,仅日期比较是直接的,最终只会比较年、月和日部分,请参阅其他答案(我不需要重复)。

但考虑一下 2011 年西萨摩亚跨越国际日期变更线的例子。您可以拥有以下类型的有效时间戳java.util.Date,但如果您考虑萨摩亚的日期部分,您甚至可能会得到无效日期(2011-12-30 在萨摩亚本地从未存在过),因此仅日期部分的比较可能会失败。此外,根据时区的不同,日期部分通常可能与 UTC 区域中的本地日期相差一天,无论是提前还是落后,在最坏的情况下甚至会有两天的差异。

因此,以下解决方案的扩展稍微更精确:

SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
fmt.setTimeZone(...); // your time zone
return fmt.format(date1).equals(fmt.format(date2));

类似的扩展也存在于更具编程性的方法中,首先将 j.u.Date-timestamp 转换为java.util.GregorianCalendar,然后设置时区,然后比较日期组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java中检查2个日期是否在同一天 的相关文章

随机推荐

  • 为什么 String.replaceAll() 对此字符串不起作用?

    This source is a line read from a file String src 23570006 music wu 1 exam Monday9 10 H2 301 1 10 score This sohuld be f
  • iPhone编程中的@property、@synthesize、@implementation、@interface是什么?

    我是 iPhone 编程新手 想知道 iPhone编程中的 property synthesize implementation interface是什么 property 生成 getter 和 setter 方法的原型 您通常将其放置在
  • Android 菜单项背景

    我想更改菜单项背景 因为我使用黑色图标 但在某些手机上 背景的默认颜色是黑色或其他深色 我试过这个解决方案它有效 但有一个小问题 我有十个项目 这就是为什么我有一个 更多 项目来显示其他选项 但如果我选择 更多 项目 具有自定义背景 然后按
  • Canvas图像绘制顺序

    我正在为等距游戏制作一个简单的引擎以供将来使用 问题是我在画布上绘图时遇到问题 以这段代码为例 function pre load var imgs 1 1000 1010 1011 1012 1013 var preload image
  • 填充文本框取决于 php 中的下拉选择

    我在谷歌和堆栈溢出中研究这个答案 有很多答案 但我无法得到我想要的 我有两个下拉菜单和三个文本框 PHP代码
  • 在 C# 和 C 之间传递对象

    我的应用程序由带有非托管 C dll 调用的 C 代码组成 在我的 C 代码中 我有一个对象 类 其中它的属性都是系统类型 例如 string 和 int 以及我定义的其他对象 我想将这个复杂的 Graph cs 对象传递给我的 C dll
  • 为什么 PHP 会干扰我的 HTML5 MP4 视频?

    我正在编写一个提供 H 264 编码 MP4 视频的 Web 应用程序 在 Chrome 和 Safari 中 它通过 HTML5 视频标签来完成此操作 为了控制对这些视频的访问 它们的内容通过 PHP 使用非常简单的机制提供 header
  • 将用户输入的 url 变成 Rails 中的外部链接

    我希望用户能够输入一个网址 然后在我的视图中放置一个指向该网址的链接 有效输入可以是例如https www google com path http www google com www google com 是否有标准的 Rails 方法
  • 无法将“Microsoft.Expression.Platform.WPF.InstanceBuilders.WindowInstance”类型的对象强制转换为“System.Windows.Window”类型

    我在 WPF 中创建了一个窗口样式
  • 如何在 Mac OSX 上的 Matlab 2010b 或更高版本中检查可用内存?

    我有一份 2004 年的 Matlab 副本 忘记了版本号 但它确实很旧 我可以使用 features memstat 命令来查看有多少内存可供 Matlab 使用 该命令在 Matlab 2010b 中不再适用 我应该怎么做才能查看可用内
  • 使用 jQuery UI 对 Ember.js 项目进行排序后,使用 Ember Data 的 model.deleteRecord() 不起作用

    我使用 jQuery UI Sortable 和 Ember js 对项目列表进行排序 它似乎工作得很好 直到我删除一条 Ember 数据记录 模型已正确删除 但 UI 未更新以反映这一点 如果删除最后一条记录 则会引发 索引超出范围 错误
  • Cocoa 应用程序内部的 Applescript

    对于我正在编写的应用程序 我需要访问一些其他应用程序的项目 Applescript 似乎是最好的方法 我一直在使用 Appscript 框架 它运行良好 因为它允许我对其进行线程化 并且当 Applescript 需要一段时间时不会使我的应
  • 给定编码中的字符无效

    XmlDocument oXmlDoc new XmlDocument try oXmlDoc Load filePath catch Exception ex Log Error Here try Encoding enc Encodin
  • Swift 中如何获取枚举值的名称?

    如果我有一个原始的枚举Integer values enum City Int case Melbourne 1 Chelyabinsk Bursa let city City Melbourne 我怎样才能转换city值到字符串Melbo
  • 有必要捕获“段错误”吗?

    我知道 如果有足够的背景 人们可能希望能够建设性地使用 即恢复 segfault健康 状况 但是 这样的努力值得吗 如果是 在什么情况下 你不能真正指望从段错误中恢复 您可以检测到它的发生 并在可能的情况下转储相关的特定于应用程序的状态 但
  • Predict_classes() 的函数式 API Keras 替代解决方案

    请参考here对于我之前的背景信息问题 按照answer建议来自纳西姆 本 我使用函数式 API 训练了双路径架构模型 现在我感到困惑 因为我需要预测每个像素的类别 这是相同的代码 imgs io imread test img astyp
  • 挂了还有问题吗?

    什么是 挂其他 问题 这个名字合适吗 我总是遵循 C 编码标准 忘了是哪一个 使用带有控制结构的括号 块 所以我不 通常会有这个问题 最后一个 其他属于 但为了理解可能出现的问题 外国代码如果能牢固地理解就好了 这个问题 我记得在一本关于
  • 在运行时更改 SetInterval 的间隔

    我编写了一个 JavaScript 函数 它使用 setInterval 每隔十分之一秒操作一个字符串 进行一定次数的迭代 function timer var section document getElementById txt val
  • 如何在Python 2中通过线程充分利用CPU核心

    下面的代码似乎是顺序执行的 而不是并发执行的 而且它只使用了一个CPU核心 有没有办法让它使用多个核心或在线程之间切换内容 我希望它能像java中的Thread类一样工作 import threading def work s for i
  • 如何在Java中检查2个日期是否在同一天

    我有 2 个日期变量 Date1 和 Date2 我想检查日期 1 是否与日期 2 属于同一日期 但允许它们有不同的时间 我该怎么做呢 这看起来是一件很容易做的事情 但我却很困难 编辑 我想避免外部库和东西 编辑 我最初的想法是删除小时 分