Skip to content

Commit 7fc30f1

Browse files
committed
replaced DateTimeFormatter with SimpleDateFormat
1 parent 62a38ea commit 7fc30f1

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

Diff for: src/main/java/com/arangodb/velocypack/internal/util/DateUtil.java

+15-13
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,23 @@
2020

2121
package com.arangodb.velocypack.internal.util;
2222

23-
import java.text.DateFormat;
2423
import java.text.ParseException;
25-
import java.text.SimpleDateFormat;
26-
import java.util.TimeZone;
24+
import java.time.Instant;
25+
import java.time.ZoneOffset;
26+
import java.time.ZonedDateTime;
27+
import java.time.format.DateTimeFormatter;
28+
import java.time.format.DateTimeParseException;
29+
import java.util.Date;
2730

2831
/**
2932
* @author Mark Vollmary
3033
*
3134
*/
3235
public class DateUtil {
3336

34-
private static final ThreadLocal<DateFormat> DATE_FORMAT = new ThreadLocal<DateFormat>() {
35-
@Override
36-
protected DateFormat initialValue() {
37-
final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
38-
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
39-
return formatter;
40-
}
41-
};
37+
private final static DateTimeFormatter DATE_FORMATTER = DateTimeFormatter
38+
.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
39+
.withZone(ZoneOffset.UTC);
4240

4341
private DateUtil() {
4442
super();
@@ -60,11 +58,15 @@ public static java.sql.Timestamp toSQLTimestamp(final byte[] array, final int of
6058
}
6159

6260
public static java.util.Date parse(final String source) throws ParseException {
63-
return DATE_FORMAT.get().parse(source);
61+
try {
62+
return new Date(ZonedDateTime.parse(source).toInstant().toEpochMilli());
63+
} catch (DateTimeParseException e) {
64+
throw new ParseException("Unparseable date: \"" + e.getParsedString() + "\"", e.getErrorIndex());
65+
}
6466
}
6567

6668
public static String format(final java.util.Date date) {
67-
return DATE_FORMAT.get().format(date);
69+
return DATE_FORMATTER.format(ZonedDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneOffset.UTC));
6870
}
6971

7072
}

0 commit comments

Comments
 (0)