java - 为什么解析此日期字符串会引发无法解析的日期异常?

标签 java date

我使用带有模式 EEE MM/dd hh:mma 的 SimpleDateFormat,传入日期字符串 Thu 10/9 08:15PM 并且它抛出一个 Unparseable日期异常。为什么?我之前在 SimpleDateFormat 中使用过各种模式,因此我对其用法相当熟悉。也许我因为盯着它太久而错过了一些明显的东西。

另一种可能性是时髦(技术术语)空白。上下文是一个屏幕抓取应用程序,我在其中使用 HtmlCleaner 来整理凌乱的 html。虽然我发现 HtmlCleaner 总体上相当不错,但我注意到一些奇怪的问题,例如,看起来像空格但无法被 StringTokenizer 识别的字符。我主要解决了这个问题,没有深入研究字符编码或类似的东西,但我开始怀疑。

最佳答案

要测试它是否是日期格式,请编写一个测试类来证明它。对于这些类型的事情,我喜欢使用 bsh (beanshell)。这是我的测试:

sdf = new java.text.SimpleDateFormat("EEE MM/dd hh:mma");
System.out.println(sdf.format(sdf.parse("Thu 10/9 08:15PM")));

输出:Fri 10/09 08:15PM

所以,至少对于我的 jdk/jre 版本(1.6),格式字符串似乎工作得很好。我认为下一步是确保您正在处理的字符串正是您所认为的。您可以在代码中添加日志记录,并将输入字符串转储到日志文件中吗?然后,您可以在一个不错的文本编辑器中查看它,在您的测试类中运行它,或者在十六进制编辑器中查看它以确保它只是普通文本。

祝你好运!

关于java - 为什么解析此日期字符串会引发无法解析的日期异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/184678/

相关文章:

java - 如何检查两个日期是否在一个时间段(间隔)之间?

java - 如何将 offsetTime 添加到 UTC 时间以获得正确的 ZonedDateTime?

java - 从文件读取的字符串未解析为本地日期

java - 如何实例化 java.security.Principal?所有子类均已弃用

java - 如何获取 Java 8 方法引用的 MethodInfo?

PHP预订系统自动更新MySQL数据库,无需任何用户交互。

mysql - 列出今天的约会 mysql 查询

php - MySQL - 如何选择具有最大日期的行

java - Eclipse 中的断言错误

java - org.hibernate.exception.SQLGrammarException : could not prepare statement; nested exception is javax. 持久性.PersistenceException