@Override
        public boolean equals(final Object o) {
            if (this == o) {
                return true;
            }
            if (o == null || getClass() != o.getClass()) {
                return false;
            }
            final Key key = (Key) o;
            return Objects.equals(pattern, key.pattern) &&
                   Objects.equals(timeZone, key.timeZone);
        }
Parsing dates that use week fields has to be done differently as week based parsing does not seem to
cope with conflicting default values for fields.
stroom-pipeline/src/main/java/stroom/pipeline/xsltfunctions/ParseDateTime.java