package ch.elexis.hl7.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class HL7Helper {
private static final String DTM_DATE_TIME_PATTERN = "yyyyMMddHHmmss"; //$NON-NLS-1$
/**
* Transformiert einen HL7 Date/Time String in ein java.util.Date
*
* @param dateTimeStr
* @return java.util.Date
*/
public static Date stringToDate(final String dateTimeStr) throws ParseException{
if (dateTimeStr == null || dateTimeStr.length() == 0) {
return null;
}
if (dateTimeStr.length() >= 14) {
SimpleDateFormat sdf = new SimpleDateFormat(DTM_DATE_TIME_PATTERN.substring(0, 14));
return sdf.parse(dateTimeStr);
} else {
SimpleDateFormat sdf =
new SimpleDateFormat(DTM_DATE_TIME_PATTERN.substring(0, dateTimeStr.length()));
return sdf.parse(dateTimeStr);
}
}
/**
* Transformiert java.util.Date in ein HL7 String
*
* @param date
* @return
*/
public static String dateToString(final Date date){
if (date == null) {
return null;
}
Calendar cal = new GregorianCalendar();
cal.setTime(date);
String pattern = DTM_DATE_TIME_PATTERN;
if (cal.get(Calendar.SECOND) == 0) {
pattern.substring(0, pattern.length() - 2);
}
if (cal.get(Calendar.MINUTE) == 0) {
pattern.substring(0, pattern.length() - 2);
}
if (cal.get(Calendar.HOUR) == 0) {
pattern.substring(0, pattern.length() - 2);
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(cal.getTime());
}
}