// parses a datetime string that adhears to the given pattern and returns a java.util.Date object public static java.util.Calendar parse(String input, String pattern) throws IllegalArgumentException { if (pattern == null) pattern = DEFAULT_DATETIME_PATTERN; java.util.Calendar output = null; if (input != null) { if (pattern.equals("datetime")) { output = javax.xml.bind.DatatypeConverter.parseDateTime(input); } else if (pattern.equals("date")) { output = javax.xml.bind.DatatypeConverter.parseDate(input); } else if (pattern.equals("time")) { output = javax.xml.bind.DatatypeConverter.parseTime(input); } else if (pattern.equals("milliseconds")) { output = java.util.Calendar.getInstance(); output.setTimeInMillis(Long.parseLong(input)); } else { java.text.DateFormat formatter = new java.text.SimpleDateFormat(pattern); formatter.setLenient(false); output = java.util.Calendar.getInstance(); try { output.setTime(formatter.parse(input)); } catch (java.text.ParseException ex) { throw new IllegalArgumentException(tundra.exception.message(ex)); } } } return output; }
// returns the given datetime formatted as a string adhering to the given pattern public static String emit(java.util.Calendar input, String pattern) { if (pattern == null) pattern = DEFAULT_DATETIME_PATTERN; String output = null; if (input != null) { if (pattern.equals("datetime")) { output = javax.xml.bind.DatatypeConverter.printDateTime(input); } else if (pattern.equals("date")) { output = javax.xml.bind.DatatypeConverter.printDate(input); } else if (pattern.equals("time")) { output = javax.xml.bind.DatatypeConverter.printTime(input); } else if (pattern.equals("milliseconds")) { output = "" + input.getTimeInMillis(); } else { java.text.DateFormat formatter = new java.text.SimpleDateFormat(pattern); formatter.setLenient(false); output = formatter.format(input.getTime()); } } return output; }