DocumentBuilder.parse () ориентирован на многопотоковое исполнение?

Ответ на принятый ответ от 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
}

26
задан JasonM1 15 November 2012 в 03:18
поделиться

2 ответа

Даже при том, что 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);
            }
        }
    };

(Правовая оговорка: Не так, как предпринято скомпилировать код.)

26
ответ дан Tom Hawtin - tackline 28 November 2019 в 07:10
поделиться

Существует сброс () метод на DocumentBuilder, который восстанавливает его к состоянию, когда это было сначала создано. Если Вы идете путем ThreadLocal, не забывайте называть это, или Вы политы из шланга.

19
ответ дан Jherico 28 November 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: