Revision 52079
Added by Alessia Bardi almost 6 years ago
modules/dnet-oai-store-service/trunk/src/main/java/eu/dnetlib/data/oai/store/mongo/RecordInfoGenerator.java | ||
---|---|---|
3 | 3 |
import java.io.ByteArrayInputStream; |
4 | 4 |
import java.io.IOException; |
5 | 5 |
import java.io.StringReader; |
6 |
import java.text.ParseException; |
|
7 | 6 |
import java.time.LocalDateTime; |
8 | 7 |
import java.time.ZoneId; |
9 | 8 |
import java.time.format.DateTimeFormatter; |
... | ... | |
86 | 85 |
return record; |
87 | 86 |
} |
88 | 87 |
|
89 |
protected Date parseDate(final String date) throws ParseException {
|
|
88 |
protected Date parseDate(final String date) { |
|
90 | 89 |
// date should be in the form: 2017-12-18 or 2017-12-18T12:00:04+00:00 or 2014-10-12T15:54:02.43Z or 2014-10-12T15:54:02.432Z or 2014-10-12T15:54:02.4Z |
91 | 90 |
try { |
92 | 91 |
LocalDateTime d = LocalDateTime.parse(date, dtf); |
... | ... | |
94 | 93 |
}catch(Exception dateException){ |
95 | 94 |
log.warn("Error parsing with DateTimeFormatter: "+dateException.getMessage()); |
96 | 95 |
log.warn("Now trying with additional pattern with apache DateUtils..."); |
97 |
return org.apache.commons.lang.time.DateUtils.parseDate( |
|
98 |
date, |
|
99 |
new String[]{ "yyyy-MM-dd", "yyyy-MM-dd'T'HH:mm:ssXXX", "yyyy-MM-dd'T'HH:mm:ss.SSSX","yyyy-MM-dd'T'HH:mm:ssZ", "yyyy-MM-dd'T'HH:mm:ss.SX"}); |
|
96 |
try { |
|
97 |
return org.apache.commons.lang.time.DateUtils.parseDate( |
|
98 |
date, |
|
99 |
new String[] { "yyyy-MM-dd", "yyyy-MM-dd'T'HH:mm:ssXXX", "yyyy-MM-dd'T'HH:mm:ss.SSSX", "yyyy-MM-dd'T'HH:mm:ssZ", |
|
100 |
"yyyy-MM-dd'T'HH:mm:ss.SX" }); |
|
101 |
}catch(Exception dateException2){ |
|
102 |
log.warn("Error parsing with DateUtils: "+dateException2.getMessage()); |
|
103 |
log.warn("Last attempt with DateTimeFormatter.ISO_ZONED_DATE_TIME..."); |
|
104 |
LocalDateTime d = LocalDateTime.parse(date, DateTimeFormatter.ISO_ZONED_DATE_TIME); |
|
105 |
return Date.from(d.atZone(ZoneId.systemDefault()).toInstant()); |
|
106 |
} |
|
100 | 107 |
} |
101 | 108 |
} |
102 | 109 |
|
Also available in: Unified diff
Let's add also a try with ISO_ZONED_DATE_TIME