2022-02-07 05:06:55 +00:00
|
|
|
package dev.plex.util.adapter;
|
|
|
|
|
2022-02-07 05:53:57 +00:00
|
|
|
import com.google.gson.JsonDeserializationContext;
|
|
|
|
import com.google.gson.JsonDeserializer;
|
|
|
|
import com.google.gson.JsonElement;
|
|
|
|
import com.google.gson.JsonParseException;
|
2022-04-19 21:49:45 +00:00
|
|
|
import dev.plex.Plex;
|
2022-02-07 05:06:55 +00:00
|
|
|
import java.lang.reflect.Type;
|
|
|
|
import java.time.Instant;
|
|
|
|
import java.time.ZoneId;
|
2022-04-19 21:49:45 +00:00
|
|
|
import java.time.ZonedDateTime;
|
2022-02-07 05:06:55 +00:00
|
|
|
|
2022-04-19 21:49:45 +00:00
|
|
|
public class ZonedDateTimeDeserializer implements JsonDeserializer<ZonedDateTime>
|
2022-02-07 05:06:55 +00:00
|
|
|
{
|
2022-05-10 05:08:45 +00:00
|
|
|
private static final String TIMEZONE = Plex.get().config.getString("server.timezone");
|
|
|
|
|
2022-02-07 05:06:55 +00:00
|
|
|
@Override
|
2022-04-19 21:49:45 +00:00
|
|
|
public ZonedDateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
|
2022-02-07 05:06:55 +00:00
|
|
|
{
|
|
|
|
Instant instant = Instant.ofEpochMilli(json.getAsJsonPrimitive().getAsLong());
|
2022-04-19 21:49:45 +00:00
|
|
|
return ZonedDateTime.ofInstant(instant, ZoneId.of(TIMEZONE));
|
2022-02-07 05:06:55 +00:00
|
|
|
}
|
|
|
|
}
|