我正在使用 joda 在我的 xml 中设置日期。我正在使用 poi 从 excelsheet 获取日期并使用以下代码将其设置在 xml 中:
DateTimeFormatter fmt = DateTimeFormat.forPattern("EEE, dd MMM YYYY HH:mm:ss zzz")
.withLocale(Locale.getDefault());
DateTime dt = fmt.parseDateTime(summaryObj.getCreateDateTime().toString());
DateTimeFormatter fmt1 = DateTimeFormat.forPattern("dd/MM/yyyy");
//get current date only
DateTime currentDate = new DateTime();
int day = currentDate.getDayOfMonth();
int month = currentDate.getMonthOfYear();
int year = currentDate.getYear();
DateTime dt1 = fmt1.parseDateTime(String.valueOf(day)+"/"+ String.valueOf(month)+"/"+String.valueOf(year));
listOfPossibleEntities.add("DateOfCreation");
gc.setTime(dt1.toDate());
globalContextObj.setDateOfCreation(DatatypeFactory.newInstance()
.newXMLGregorianCalendar(gc));
summaryObj.getCreateDateTime().toString() 生成一个字符串,如“Sat Sep 16 05:30:00 IST 2006”。我收到函数 parseDateTime() 的异常。
java.lang.IllegalArgumentException: Invalid format: "Sat Sep 16 05:30:00 IST 2006" is malformed at " Sep 16 05:30:00 IST 2006"
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:866)
at scanning.ScanningEngine.getGlobalContext(ScanningEngine.java:2633)
我最初直接使用日期而不是 joda,但是我们在使用 REST 将 xml 作为 json 返回时遇到了杰克逊反序列化器的异常。这就是我决定切换到 joda 的原因,因为我看到一些帖子说 jackson 中有一些用于 java.util.Date 反序列化的错误。
如果有人知道为什么会出现无效格式异常,请告诉我。谢谢。