Ответ на принятый ответ от CMS верен, я только что добавил некоторые функции:
// parse a date time that can contains spaces, dashes, slashes, colons
function parseDate(input) {
// trimes and remove multiple spaces and split by expected characters
var parts = input.trim().replace(/ +(?= )/g,'').split(/[\s-\/:]/)
// new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])
return new Date(parts[0], parts[1]-1, parts[2] || 1, parts[3] || 0, parts[4] || 0, parts[5] || 0); // Note: months are 0-based
}
Даже при том, что DocumentBuilder.parse, кажется, не видоизменяет разработчика, он делает на реализации по умолчанию JDK Sun (на основе Apache Xerces). Эксцентриковое проектное решение. Что можно сделать? Я предполагаю, используют ThreadLocal:
private static final ThreadLocal<DocumentBuilder> builderLocal =
new ThreadLocal<DocumentBuilder>() {
@Override protected DocumentBuilder initialValue() {
try {
return
DocumentBuilderFactory
.newInstance(
"xx.MyDocumentBuilderFactory",
getClass().getClassLoader()
).newDocumentBuilder();
} catch (ParserConfigurationException exc) {
throw new IllegalArgumentException(exc);
}
}
};
(Правовая оговорка: Не так, как предпринято скомпилировать код.)
Существует сброс () метод на DocumentBuilder, который восстанавливает его к состоянию, когда это было сначала создано. Если Вы идете путем ThreadLocal, не забывайте называть это, или Вы политы из шланга.