java.text.ParseException:无法解析的日期:“ - ”

时间:2014-07-30 09:20:55

标签: java date-format simpledateformat

我有以下代码

   private String formatDate(String date)
    throws XXXXException
{
    String str = "no date";
    if (!StrUtil.isEmpty(date) && !"null".equals(date))
    {
        DateFormat dateformatter = DateFormat.getDateTimeInstance(DateFormat.SHORT,  
        DateFormat.SHORT);
        Date dateDate;
        str = "";
        try
        {
            dateDate = dateformatter.parse(date);
            str = m_formatter.dateToString(dateDate);
        }
        catch (ParseException e)
        {
            LogFactory.getLogger(XYZ.class).error("", e);

        }
    }

    return str;
 }

在websphere v7.0中部署了耳朵的用户之一看到了以下内容 例外

 java.text.ParseException: Unparseable date: "-"
 at java.text.DateFormat.parse(DateFormat.java:337)
 .
 .
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1661) 
 .

我不认为使用weblogic部署时会出现问题。此外,我无法使用websphere v7.0在本地复制问题。问题可能与websphere有关 http://www-01.ibm.com/support/docview.wss?uid=swg1PM54864 ??? 或者我可以用我的代码做些什么来帮助我解决这个问题?

2 个答案:

答案 0 :(得分:0)

当我查看DateFormat.SHORT(http://docs.oracle.com/javase/tutorial/i18n/format/dateFormat.html)的java文档时,它会提到一个'/'字符作为分隔符。所以' - '确实是一个无效的角色。

我还注意到格式依赖于语言环境。那么你的weblogic和websphere服务器可能有不同的语言环境吗?

答案 1 :(得分:0)

问题得到解决。发生这种情况是因为我们正在使用xslt转换。 在contentHandler实现文件中,字符函数未正确实现。

   public void characters(char ch[], int start, int length)
    throws SAXException
{
    // Reset the value
    m_value.setLength(0);
    m_value.append(ch, start, length);
    isPut = true;
}

问题在于setLength(0)。它适用于weblogic而不是websphere,因为weblogic具有更大的缓冲区或者不是websphere。

相关问题