code: @Override
      public Date parse(final String dateStr, final ParsePosition pos) {
          final ParsePosition posCopy = new ParsePosition(pos.getIndex());
          Date date = null;
          boolean success = false;
          for (final DateFormatFactory dfFactory : DATE_FORMAT_FACTORIES) {
              posCopy.setIndex(pos.getIndex());
              posCopy.setErrorIndex(pos.getErrorIndex());
              date = dfFactory.create().parse(dateStr, posCopy);
              if (date != null) {
                  success = true;
                  break;
              }
          }
          if (success) {
              pos.setIndex(posCopy.getIndex());
              pos.setErrorIndex(posCopy.getErrorIndex());
          }
          return date;
      }
docs: {@inheritDoc}