public Date[] getDates(String privateCreator, int tag, VR vr, DatePrecisions precisions) { int index = indexOf(privateCreator, tag); if (index < 0) return null; Object value = values[index]; if (value == Value.NULL) return DateUtils.EMPTY_DATES; if (vr == null) vr = vrs[index]; else updateVR(index, vr); if (!vr.isTemporalType()) { LOG.info("Attempt to access {} {} as date", TagUtils.toString(tag), vr); return DateUtils.EMPTY_DATES; } try { value = decodeStringValue(index); if (value == Value.NULL) return DateUtils.EMPTY_DATES; return vr.toDates(value, getTimeZone(), false, precisions); } catch (IllegalArgumentException e) { LOG.info("Invalid value of {} {}", TagUtils.toString(tag), vr); return DateUtils.EMPTY_DATES; } }