我需要一个字符串解析为Joda-TimeDateTime(或者是java.util.Date)这是我得到的字符串的示例:时区关在乔达时间10小时
eventDateStr = 2013-02-07T16:05:54-0800
我正在使用的代码:
DateTimeFormatter presentation = DateTimeFormat.forPattern("yyyy-MM-dd kk:mm:ssZ");
DateTime eveDate = presentation.parseDateTime(eventDateStr);
以上抛出此异常:
Invalid format: "2013-02-07T16:05:54-0800" is malformed at "T04:03:20-0800"
所以我PA解析出'T':
eventDateStr = eventDateStr.indexOf("T") > 0 ? eventDateStr.replace("T", " ") : eventDateStr;
并再次尝试。这一次也不例外,但是,时间段为关:
2013-02-08T02:05:54.000+02:00
注意区别:在原来的字符串时区为“-0800”,在这里它是“+02:00”。这又会改变整个日期,现在是一天之后。
我在做什么错?
你注意到日期也完全关闭吗? – nhahtdh 2013-02-11 15:21:02
感谢您的回复,nhahtdh。这会产生一个异常:java.lang.IllegalArgumentException:非法模式组件:T – Eddy 2013-02-11 15:41:54
我注意到日期字符串是关闭的吗?你的意思是,2013-01-27T04:03:20-0800?是的,但这是我必须合作的。 – Eddy 2013-02-11 15:42:56