[Bugfix] fixed brok Iso8601DateAdapter

This commit is contained in:
Robert von Burg 2015-04-02 20:23:04 +02:00
parent c7654e93a5
commit 22ddb3bd74
1 changed files with 25 additions and 4 deletions

View File

@ -1,25 +1,46 @@
package li.strolch.model.xml;
import java.util.Calendar;
import java.util.Date;
import javax.xml.bind.DatatypeConverter;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.eitchnet.utils.helper.StringHelper;
import ch.eitchnet.utils.iso8601.ISO8601FormatFactory;
public class Iso8601DateAdapter extends XmlAdapter<String, Date> {
private static final Logger logger = LoggerFactory.getLogger(Iso8601DateAdapter.class);
@Override
public Date unmarshal(String value) throws Exception {
if (StringHelper.isEmpty(value))
return null;
return ISO8601FormatFactory.getInstance().getDateFormat().parse(value);
try {
return DatatypeConverter.parseDateTime(value).getTime();
} catch (Exception e) {
IllegalArgumentException ex = new IllegalArgumentException("Failed to parse value: " + value, e);
logger.info(ex.getMessage(), ex);
throw ex;
}
}
@Override
public String marshal(Date value) throws Exception {
if (value == null)
return StringHelper.EMPTY;
return ISO8601FormatFactory.getInstance().formatDate(value);
return null;
try {
Calendar cal = Calendar.getInstance();
cal.setTime(value);
String valueS = DatatypeConverter.printDateTime(cal);
return valueS;
} catch (Exception e) {
IllegalArgumentException ex = new IllegalArgumentException("Failed to format date: " + value, e);
logger.info(ex.getMessage(), ex);
throw ex;
}
}
}