【问题标题】:Lenient date parsing for syslog messages [duplicate]系统日志消息的宽松日期解析[重复]
【发布时间】: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 解决这个问题?

【问题讨论】:

标签: java jodatime


【解决方案1】:

你愿意先运行's/\s+/ '吗?

【讨论】:

  • 虽然我希望格式化程序的格式或设置中有一个魔术字母,但我认为这是一个非常好的解决方案。谢谢。
猜你喜欢
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-20
  • 1970-01-01
相关资源
最近更新 更多