用于将此字符串解析为DateTime的模式

时间:2011-04-06 19:20:48

标签: datetime jodatime

嘿大家我试图从一个看起来像DateTime的字符串中解析"20110406080000.000[-4:EDT]"并遇到问题[-4:EDT]

DateTimeFormat.forPattern("yyyyMMddHHmmss.SSS[ZZ]").parseDateTime("20110406080000.000[-4:EDT]")会导致以下错误

java.lang.IllegalArgumentException: Invalid format: "20110406080000.000[-4:EDT]" is malformed at "-4:EDT]"
    at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:673)
    at .<init>(<console>:8)
    at .<clinit>(<console>)
    at RequestResult$.<init>(<console>:9)
    at RequestResult$.<clinit>(<console>)
    at RequestResult$scala_repl_result(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at scala.tools.nsc.Interpreter$Request$$anonfun$loadAndRun$1$$anonfun$apply$17.apply(Interpreter.scala:988)
    at scala.tools.nsc.Interpreter$...

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

你需要

  • 解析前删除后缀
  • 为末尾部分编写自己的DateTimeParser,使用DateTimeFormatterBuilder将解析器与第一部分的标准解析器结合起来