我有以下代码
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 ??? 或者我可以用我的代码做些什么来帮助我解决这个问题?
答案 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。