【发布时间】:2014-05-05 18:04:40
【问题描述】:
我正在尝试从系统日志条目解析以下日期:May 5 18:44:44。请注意,在“May”之后有 2 个空格:一个作为分隔符,另一个作为月份中省略的零。
以下代码失败,java.lang.IllegalArgumentException: Invalid format: "May 5 18:44:44" is malformed at " 5 18:44:44"
String input = "May 5 18:44:44";
DateTimeFormatter formatter = DateTimeFormat.forPattern("MMM d HH:mm:ss")
.withLocale(Locale.US);
DateTime dt = formatter.parseDateTime(input);
显然解析器并没有理解第二个空间。当我“手动”删除第二个空格时,它也可以工作。
有没有人知道如何使用 joda time 或标准 java DateFormat 解决这个问题?
【问题讨论】:
-
是的,这几乎是重复的。找了好久没找到……
-
正则表达式是消耗 CPU 周期的好方法,但如果你愿意,你可以使用 grok。 stackoverflow.com/questions/19565755/…