当前位置: 首页 > 面试题库 >

Java是否有一个很好的* strict *日期解析器?

庄瀚玥
2023-03-14
问题内容

是否有一个适用于Java的 严格的严格 日期解析器?我可以访问Joda-Time,但尚未看到此选项。我发现了“
Java是否有一个好的日期解析器”的问题,尽管与此相关,但恰恰相反。尽管这个问题要求宽大,更加模糊的逻辑并且易于出现人为错误解析器,但我想要一个严格的解析器。例如,对于JodaTime(据我所知)和simpleDateFormat,如果格式为“
MM / dd / yyyy”:

解析为:40/40/4353

这将成为有效日期。我想要一个解析器,该解析器知道40是无效的月份和日期。在Java中肯定存在这种实现吗?


问题答案:

我看不到Joda认为这是有效日期。例:

strict = org.joda.time.format.DateTimeFormat.forPattern("MM/dd/yyyy")
try {
    strict.parseDateTime('40/40/4353')
    assert false
} catch (org.joda.time.IllegalFieldValueException e) {
    assert 'Cannot parse "40/40/4353": Value 40 for monthOfYear must be in the range [1,12]' == e.message
}

作为最好的,我可以告诉大家,同样没有日期格式与setLenient(假)。例:

try {
    df = new java.text.SimpleDateFormat('MM/dd/yyyy')
    df.setLenient(false)
    df.parse('40/40/4353')
    assert false
} catch (java.text.ParseException e) {
    assert e.message =~ 'Unparseable'
}

希望这可以帮助!



 类似资料:
  • 问题内容: 我是相对较新的Python转换者。我编写了一些代码来从各种来源获取/绘制数据,以使每周的报告和预测自动化。我对Jython的概念很感兴趣,并想移植一些我写给Jython的Python代码。为了快速完成此任务,我需要一个Jython(或Java)的NumPy克隆。那里有这样的东西吗? 问题答案: 我找不到任何的numpy的一个克隆,但还有很长的Java的NUMERICS包列表在这里 -这

  • 问题内容: 有没有很好的方法来获取下一个星期三的日期?也就是说,如果今天是星期二,我想获取本周星期三的日期;如果今天是星期三,我想知道下星期三的日期;如果今天是星期四,我想获取下周的星期三日期。 谢谢。 问题答案: 基本算法如下: 获取当前日期 取得星期几 与周三找到不同 如果差异不是正数,则加7(即坚持下一个到来/将来的日期) 增加差异 这是一个片段,展示了如何使用: 相对于我现在的位置,上述代

  • 问题内容: 我的日期格式为dd-mmm-yy或d- mmm-y,其中月份是字母的缩写(例如,09年11月4日或05年12月12日等)。喜欢解析它以产生一个java.util.Date对象。 可以通过利用java.text.DateFormat类来实现吗?还是有另一种简单的方法? 问题答案: 您可能需要使用SimpleDateFormat来解析自定义格式。此文章解释格式的细节。

  • 问题内容: 有谁知道一个允许我解析.PO文件的Java库?我只想创建ID和值的映射,以便将它们加载到数据库中。 问题答案: 根据Java gettext实用程序手册, 您可以使用程序将PO文件转换为ResourceBundle类,并使用java.util.ResourceBundle或gnu.gettext.GettextResource读取它- 我认为这是最有效的方法。Gettext-commo

  • 问题内容: 在这种情况下,我正在读取大约13万条记录,其中包含存储为String字段的日期。一些记录包含空格(空),一些包含这样的字符串:“ dd-MMM- yy”,而另一些包含此“ dd / MM / yyyy”。 我写了这样的方法: 因此,您可能已经发现了问题。 我正在使用try .. catch作为我逻辑的一部分 。最好事先确定String实际上包含某种格式的可解析日期,然后再尝试解析它。

  • 问题内容: 我正在寻找Java的良好排序列表。到处搜寻可以给我一些有关使用TreeSet / TreeMap的提示。但是这些组件缺少一件事:随机访问集合中的元素。例如,我想访问排序集中的第n个元素,但是使用TreeSet时,我必须遍历其他n-1个元素,然后才能到达那里。因为我的集合中最多有数千个元素,所以这很浪费。 基本上,我正在寻找与.NET中的排序列表类似的东西,能够快速添加元素,快速删除元素