private void formatOverSeasDate() throws TransformerException {
   String dateToParse = "";
   try {
     Node n = getXpathApi().selectSingleNode(getDocument(), XPATH + "/overseaDate");
     dateToParse = PDFMakerUtil.readStringFromNode(n);
     if (dateToParse != null) {
       Date d = PDFMakerUtil.getInputDateFormat().parse(dateToParse);
       Text textNode = getDocument().createTextNode(getOutputDateFormat().format(d));
       Node formattedDate = getDocument().createElement("formattedOverseaDate");
       formattedDate.appendChild(textNode);
       n.getParentNode().appendChild(formattedDate);
     }
   } catch (ParseException e) {
     logger.error("Unparsable date: " + dateToParse, e);
   }
 }
  protected void formatDates(String xpath, String formattedPrefix)
      throws TransformerException, DOMException, ParseException {
    Node nodeByXpath = null;
    NodeList nodelist = null;

    nodelist = getXpathApi().selectNodeList(getDocument(), xpath);

    SimpleDateFormat outputTimeFormat = new SimpleDateFormat("HH:mm");
    Calendar cal = new GregorianCalendar();

    Date dateToParse = null;
    Element formattedDateElement = null;
    Element formattedTimeElement = null;

    // Verarbeite jedes Element der Nodelist
    for (int i = 0; i < nodelist.getLength(); i++) {
      nodeByXpath = nodelist.item(i);
      // Hole das Datum aus Textinhalt aus der Node, da dieser
      // modifiziert werden soll
      String dateString = PDFMakerUtil.readStringFromNode(nodeByXpath);
      if (dateString != null) {
        // Parse den übergebenen Textstring in ein Date-Object
        dateToParse = PDFMakerUtil.getInputDateFormat().parse(dateString);

        // Übergebe das geparste Datum dem Calendar-Object
        cal.setTime(dateToParse);
        cal.add(Calendar.MILLISECOND, -cal.getTimeZone().getOffset(cal.getTimeInMillis()));

        formattedDateElement = getDocument().createElement(formattedPrefix + "Date");
        formattedDateElement.appendChild(
            getDocument().createTextNode(getOutputDateFormat().format(cal.getTime())));
        // Füge die neue Node der Parentnode hinzu
        nodeByXpath.getParentNode().appendChild(formattedDateElement);

        formattedTimeElement = getDocument().createElement(formattedPrefix + "Time");
        formattedTimeElement.appendChild(
            getDocument().createTextNode(outputTimeFormat.format(cal.getTime())));
        // Füge die neue Node der Parentnode hinzu
        nodeByXpath.getParentNode().appendChild(formattedTimeElement);
      }
    }
  }