package dev.plex.util.adapter; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import dev.plex.Plex; import java.lang.reflect.Type; import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; public class ZonedDateTimeDeserializer implements JsonDeserializer { private static final String TIMEZONE = Plex.get().config.getString("server.timezone"); @Override public ZonedDateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Instant instant = Instant.ofEpochMilli(json.getAsJsonPrimitive().getAsLong()); return ZonedDateTime.ofInstant(instant, ZoneId.of(TIMEZONE)); } }