@Override public Date toDate(byte[] val) { return DateUtils.parseDA( StringUtils.trim(VR.bytes2str1(val, null)), false); }
public static Date parseDA(String s, boolean end) { if (s == null || s.length() == 0) return null; Calendar c = new GregorianCalendar(); c.clear(); if (end) { setToDec31(c); } parseDA(c, s, 0, s.length()); return c.getTime(); }
@Override public Date[] toDates(byte[] val) { if (val == null || val.length == 0) return EMPTY_DATE_ARRAY; String[] ss = StringUtils.trim(VR.bytes2strs(val, null)); Date[] ds = new Date[ss.length]; for (int i = 0; i < ds.length; i++) { ds[i] = DateUtils.parseDA(ss[i], false); } return ds; }
@Override public DateRange toDateRange(byte[] val) { String s = StringUtils.trim(VR.bytes2str1(val, null)); int l; if (s == null || (l = s.length()) == 0 || s.equals("-")) return null; int hypen = s.indexOf('-'); Date start = hypen == 0 ? null : DateUtils.parseDA(hypen == -1 ? s : s.substring(0, hypen), false); Date end = hypen + 1 == l ? null : DateUtils.parseDA(s .substring(hypen + 1), true); return new DateRange(start, end); } }
public static Date parseDT(String s, boolean end) { if (s == null || s.length() == 0) { return null; } Calendar c = new GregorianCalendar(); c.clear(); if (end) { setToDec31(c); setTo2359(c); } int len = s.length(); if (len >= 5) { final char tzsign = s.charAt(len - 5); if (tzsign == '+' || tzsign == '-') { len -= 5; c.setTimeZone(TimeZone.getTimeZone("GMT" + s.substring(len))); } } int pos = parseDA(c, s, 0, len); if (pos + 2 <= len) { parseTM(c, s, pos, len); } return c.getTime(); }