Project

General

Profile

« Previous | Next » 

Revision 52079

Let's add also a try with ISO_ZONED_DATE_TIME

View differences:

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