比较Java中的日期字符串[重复]

2023-11-23

所以我正在使用dateString1.compareTo(dateString2)它根据每个字符的 Unicode 值与字符串进行字典顺序比较,并返回一个 int。这是一个代码示例。

String dateString1 = "05-12-2012";
String dateString2 = "05-13-2012";
if (dateString1.compareTo(dateString2) <=0){
   System.out.println("dateString1 is an earlier date than dateString2");
}

这是 Java 中比较日期的错误方法吗?

在我的测试中,我没有遇到得到意外结果的情况。如果不需要的话,我真的不想从字符串中创建一个 Date 对象,因为我是在一个长时间运行的循环中执行此操作。

忍者 编辑从下面的答案中可以看出,如果将日期作为字符串进行比较,则没有任何问题yyyyMMdd格式,但如果是任何其他格式,显然会导致错误。

我的日期字符串实际上是yyyyMMdd我的实际代码中的格式。 (我在上面给出的示例中输入了错误的格式。)所以现在,我将保留代码不变,并添加几行注释来证明我的决定是正确的。

但我现在发现,像这样比较字符串是非常有限的,如果 dba 决定将来更改日期格式,我将遇到错误,而我没有看到这种情况发生。


在 Java 中使用字符串处理日期并不总是最好的选择。例如,当它是一个leap今年,二月多了一天。因为字符串看起来可能是正确的,所以执行转换。 Java 验证日期是否正确。

您可以使用以下命令将字符串转换为日期简单日期格式 class.

public static void main(String[] args) throws ParseException {
    String dateString1 = "05-12-2012";
    String dateString2 = "05-13-2012";

    SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");

    Date date1 = format.parse(dateString1);
    Date date2 = format.parse(dateString2);

    if (date1.compareTo(date2) <= 0) {
        System.out.println("dateString1 is an earlier date than dateString2");
    }
}

找出允许检查哪些参数自定义格式(Java™ 教程 > 国际化 > 格式设置)

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

比较Java中的日期字符串[重复] 的相关文章

随机推荐

  • 移动 numpy 数组中的元素

    这个问题在底部包含它自己的答案 使用预先分配的数组 后续行动来自这个问题几年前 numpy 中有一个规范的 shift 函数吗 我没有看到任何东西文档 这是我正在寻找的简单版本 def shift xs n if n gt 0 return
  • 三元表达式中的 NullPointerException 为 null Long

    为什么下面这行代码会产生NullPointerException Long v 1 2 Long MAX VALUE Long null 据我所知 正在执行拆箱操作null 但为什么 注意 Long v Long null 不产生异常 因此
  • 在 Django 模型中使用 UUID 作为主键(通用关系影响)

    由于多种原因 我想在我的一些 Django 模型中使用 UUID 作为主键 如果我这样做 我仍然可以使用通过 ContentType 使用通用关系的外部应用程序 例如 contrib comments django voting 或 dja
  • CNN-LSTM 的批量归一化层

    假设我有一个这样的模型 这是时间序列预测的模型 ipt Input data shape 1 data shape 2 1 x Conv1D filters 10 kernel size 3 padding causal activatio
  • Azure Functions 应用程序在发布后为只读

    我有几个 Azure Functions 应用程序 c javascript 和 python 一段时间后它们都被随机设置为只读模式 奇怪的是 在这之前 这 3 个功能应用程序中只更新了其中一个 我知道这不一定是问题 但我希望能够从门户进行
  • 动态创建字段和方法

    我想为给定的类添加新字段 变量 和封装方法 例如 班级名称 Student 没有任何字段 如下所示 public class Student implements Serializable 然后在我的应用程序中创建一个实例 Student
  • HTML5 音频事件“进度”未触发

    我正在构建一个 a v html5 流媒体网络应用程序 这个问题涉及项目的音频部分 但我确信当我开始处理视频部分时我会遇到类似的情况 我的目标设备是 iPad 的 safari 浏览器 因此我必须这样做 html5 播放效果很好 但我有一个
  • 检查相交矩形的更快方法?

    除了我的 Rect 类 public class Rect public int x public int y public int w public int h public Rect int x int y int w int h th
  • 使用 JavaScript 正则表达式将数字 HTML 实体替换为其实际字符

    我正在尝试使用 JavaScript 和正则表达式将数字 HTML 实体替换为其实际的 Unicode 字符 例如 foo 39 s bar foo s bar 这是我到目前为止得到的 foo 39 s bar replace s g 1
  • 从 BaseAdapter 调用 notificationDataSetChanged 时 ListView 不会更新

    当底层数据发生变化时 我很难更新 ListActivity 我正在使用派生的 vom BaseAdapter 的自定义 列表 适配器 CustomListAdapter 来使用自定义列表元素 CustomListElement 填充 Lis
  • Erlang 是否总是在同一节点上的进程之间复制消息?

    演员消息传递语义的忠实实现意味着消息内容是从logical观点 即使对于不可变类型也是如此 消息内容的深度复制仍然是执行者模型实现的瓶颈 因此为了性能 某些实现支持零复制消息传递 尽管从程序员的角度来看它仍然是深度复制 是否实现了零拷贝消息
  • 如何等待网络流有数据可供读取?

    我的应用程序中有一个工作线程负责三件不同的事情 对其中两个作业的请求出现在我编写的队列中 当网络流上出现请求时 另一个作业就会被激活 我希望我的工作线程在没有工作要做时等待 这对于两个队列来说很容易 因为它们公开了一个 ManualRese
  • Jquery跨域问题

    我正在尝试访问另一个域中的网络服务 但它没有返回任何内容 后来我发现这是由于跨域访问造成的问题 网上查了很多文章 但没有一篇是像我这样的新手能读懂的 有人可以帮助我如何访问网络服务吗 以下是我的代码 variables for Add Co
  • 创建一个人类可读的列表,并在 ruby​​ 列表中的最后一个元素之前插入“and”

    如何获取一个列表并将其转换为逗号分隔的字符串 并在数组中的最后一个元素之前添加 and 采取类似的东西 list1 a b c 并将其变成这样 gt a b and c 我记得 ruby 有一个方法 然而我已经搜索过 但没有找到 谢谢您的帮
  • %matplotlib 内联在 iPython 和 Jupyter 控制台上不起作用

    我是第一次尝试 Jupyter 控制台 但无法获取 matplotlib inline工作的魔力 以下是示例会话的屏幕截图 The plot shows in a separate window after I run Line 6 and
  • 将彩色图喷射到灰度图

    我有一个喷射色彩图 我想知道是否有某种方法可以转换为灰度 我不能使用平均值 因为最大值和最小值变为相同的灰色 或者是否有某种方法可以转换为另一个调色板 我在 Google 上找不到转换它的函数 MATLAB 使用一种叫做rgb2ind但我想
  • .NET - 第一次有机会进行密集调试的异常侦听器?

    这可能不切实际 但是是否有可能使组件能够收到其进程中发生的所有首次机会异常的通知 我们有一些第三方 由我们承包 组件 它们除了吃例外之外什么也做不了 而业务关系的政治使整个考验变得非常痛苦 我们还意识到 我们的一些代码正在执行令人失望的操作
  • Visual Studio 2019 的 SSDT? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我找到了VS2017版本的安装程序here 但是有2019预览版的吗 SQL Server 报告服务和 SQL Server 分析服务 SSRS S
  • 是否可以绕过 MATLAB 对矢量格式文件中字体嵌入的限制?

    根据 MA TLAB 手册 当您使用以下命令保存图形时print或通过选择file save 如果您选择painters渲染器并保存为 PDF 或 EPS 矢量格式 所有字体都被替换 有没有办法绕过这个限制 每当我输出一个数字时 我是否使用
  • 比较Java中的日期字符串[重复]

    这个问题在这里已经有答案了 所以我正在使用dateString1 compareTo dateString2 它根据每个字符的 Unicode 值与字符串进行字典顺序比较 并返回一个 int 这是一个代码示例 String dateStri