使 SimpleDateFormat.parse() 在无效日期上失败(例如月份大于 12)

2023-11-22

我在用着java.text.SimpleDateFormat解析以下形式的字符串"yyyyMMdd".

如果我尝试解析月份大于 12 的字符串,它不会失败,而是会滚动到下一年。完整的可运行重现:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ParseDateTest {

    public static void main(String[] args) throws ParseException {

        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        Date result = format.parse("20091504"); // <- should not be a valid date!
        System.out.println(result); // prints Thu Mar 04 00:00:00 CST 2010
    }
 }

我宁愿有一个ParseException thrown.

有没有什么非黑客的方法来强制异常发生?我的意思是,我不想手动检查该月份是否大于 12。这有点荒谬。

感谢您的任何建议。

注意:我已经了解 Joda Time,但我需要在没有外部库的普通 JDK 中完成此操作。


你需要做到不宽容. Thus,

format.setLenient(false);

应该这样做。

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

使 SimpleDateFormat.parse() 在无效日期上失败(例如月份大于 12) 的相关文章

  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 限制ManyToManyField的最大选择

    我试图限制模型记录在 ManyToManyField 中可以拥有的最大选择数量 在此示例中 有一个可以与区域相关的博客站点 在此示例中 我想将博客站点限制为只能有 3 个区域 这似乎是以前被问过 回答过的问题 但经过几个小时的探索后 我还没
  • Helm 图表之间的依赖关系是否应该反映微服务之间的依赖关系?

    给定以下服务方案及其依赖项 我想设计一组 Helm 图表 API Gateway calls Service A and Service C Service A calls Service B Service B calls Databas
  • ASP.NET Identity 2.0:如何重新哈希密码

    我正在 ASP NET 5 0 Web 应用程序中将用户从旧用户存储迁移到 ASP NET Identity 2 0 我有一种验证旧哈希值的方法 但我想在登录时将它们升级到 ASP NET Identity 2 0 哈希值 我创建了一个自定
  • 使用 MemoryStream 写入 XML

    我注意到有两种不同的方法将数据写入 XML 文件 为简洁起见 省略了错误处理 第一种方法是构建 XML 文档 然后将 XML 保存到文件中 using XmlWriter writer XmlWriter Create fileName w
  • 如何在makefile配方中设置环境变量?

    这是一个简化的 Makefile all for i 0 i lt 5 i do var var i echo var done echo var 我认为 var 的值是 0 1 2 3 4 但输出是 0 0 1 0 1 2 0 1 2 3
  • 如何实现CoreData记录的重新排序?

    我在 iPhone 应用程序中使用 CoreData 但 CoreData 不提供允许您对记录重新排序的自动方法 我想过使用另一列来存储订单信息 但是使用连续数字作为排序索引有问题 如果我正在处理大量数据 重新排序记录可能涉及更新排序信息上
  • Play 框架如何运作?

    我喜欢玩 与其他企业 Java 框架相比 它对于开发人员来说使用起来非常简单 但是 它是如何做到的呢 是什么让像 Java 这样的编译语言能够实现编辑 刷新循环 是什么让 Play 按其工作方式工作 Play 使用 Eclipse 编译器在
  • 在 PL/SQL 中打印记录字段

    如何在 PL SQL 中打印记录变量的所有字段 记录变量有很多字段 那么有没有比打印每个字段更好的方法呢 也尝试过动态sql但没有帮助 基于 Ollies 使用 dbms output 构建 但用于动态遍历光标 设置用于测试 create
  • ASP.NET MVC 3 - 在 jquery 对话框中编辑动态添加到模型集合的项目

    我是 MVC 新手 所以我不确定这里最好的方法是什么 我有一个视图模型 其中包含几个像这样的集合 public class MainViewModel public List
  • iPhone Web 应用程序可以使用相机吗?

    我有一个网络应用程序 我想拍照然后将它们上传到服务器 这可以通过网络应用程序完成吗 编辑 现在可以了 请参阅下面的答案 不可以 webapp 无法访问内部设备 尝试使用 PhoneGap 来缩小您的应用程序和内部设备之间的差距 但这将编译一
  • 通过列表和数组中的索引获取结构体项目

    当我使用数组时structs 例如 System Drawing Point 我可以通过索引获取项目并更改它 例如 此代码工作正常 Point points new Point new Point 0 0 new Point 1 1 new
  • 寻找曲线上的最佳权衡点

    假设我有一些数据 我想为其拟合参数化模型 我的目标是找到该模型参数的最佳值 我正在使用AIC BIC MDL奖励低误差模型的标准类型 但也会惩罚高复杂性的模型 可以说 我们正在为这些数据寻找最简单但最令人信服的解释 a la奥卡姆剃刀 根据
  • 如何在不删除 R 中存在 NA 的行的情况下执行聚类

    我有一个数据 其元素中包含一些 NA 值 我想做的是执行聚类而不删除行NA 存在的地方 我明白那个gower距离测量单位daisy允许这种情况 但为什么我下面的代码不起作用 我欢迎 雏菊 以外的其他选择 plot heat map with
  • Flutter Workmanager 插件在运行任务时无法与任何其他插件一起使用

    初始化工作管理器并创建任一任务后 如果我们在任务执行中使用任何插件 它将无法被识别并抛出如下错误 MissingPluginException 在通道 lyokone location 上找不到方法 getLocation 的实现 实际代码
  • 为什么 stdafx.h 会这样工作?

    像往常一样 当我的大脑搞乱了我自己无法弄清楚的事情时 我会向你们寻求帮助 这次我一直想知道为什么 stdafx h 会这样工作 据我了解 它做了两件事 包括我们的标准标头might 使用并且很少改变 作为编译器书签 代码不再预编译 现在 这
  • BOOST_CHECK_EQUAL 带有pair 和自定义运算符<<

    当尝试执行 BOOST CHECK EQUAL pair pair 时 尽管声明了它 但 gcc 找不到pair的流运算符 有趣的是 std out 找到了运算符 ostream operator lt lt ostream s const
  • 检测类型是否是主模板的专业化或用户提供的专业化

    假设我有这个 template
  • Tensorflow 数据集 API 中的过采样功能

    我想问一下目前的数据集API是否允许实现过采样算法 我处理高度不平衡的阶级问题 我认为在数据集解析 即在线生成 过程中对特定类进行过采样会很好 我已经看到了rejection resample函数的实现 但是这会删除样本而不是复制它们 并且
  • Google 应用引擎 JRE 类“黑名单”

    有一个 JRE 类白名单 对于 Google 应用程序引擎 我真正想要的是一个 黑名单 换句话说 Java API 不能在 GAE 上运行 这样的列表存在吗 开发人员是否在 GAE 上的 Java API 方面遇到过问题 他们似乎更多地采取
  • 使 SimpleDateFormat.parse() 在无效日期上失败(例如月份大于 12)

    我在用着java text SimpleDateFormat解析以下形式的字符串 yyyyMMdd 如果我尝试解析月份大于 12 的字符串 它不会失败 而是会滚动到下一年 完整的可运行重现 import java text ParseExc