66import com .google .gson .stream .JsonWriter ;
77import com .meilisearch .sdk .model .Key ;
88import java .io .IOException ;
9- import java .text .DateFormat ;
109import java .text .SimpleDateFormat ;
1110import java .time .Instant ;
1211import java .util .ArrayList ;
1312import java .util .Date ;
1413import java .util .List ;
14+ import java .util .TimeZone ;
1515
1616public class GsonKeyTypeAdapter extends TypeAdapter <Key > {
1717
@@ -24,7 +24,13 @@ public class GsonKeyTypeAdapter extends TypeAdapter<Key> {
2424 private static final String KEY_EXPIRES_AT = "expiresAt" ;
2525 private static final String KEY_CREATED_AT = "createdAt" ;
2626 private static final String KEY_UPDATED_AT = "updatedAt" ;
27- private static final DateFormat DATE_FORMAT = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss'Z'" );
27+ private static final ThreadLocal <SimpleDateFormat > DATE_FORMAT =
28+ ThreadLocal .withInitial (
29+ () -> {
30+ SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss'Z'" );
31+ format .setTimeZone (TimeZone .getTimeZone ("UTC" ));
32+ return format ;
33+ });
2834
2935 @ Override
3036 public void write (JsonWriter writer , Key key ) throws IOException {
@@ -134,7 +140,7 @@ private void writeDate(JsonWriter writer, String key, Date value) throws IOExcep
134140 if (value == null ) {
135141 return ;
136142 }
137- writer .name (key ).value (DATE_FORMAT .format (value ));
143+ writer .name (key ).value (DATE_FORMAT .get (). format (value ));
138144 }
139145
140146 private void readStartObject (JsonReader reader ) throws IOException {
0 commit comments