package pta.de.core.common;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.util.Date;

public class JsonGeneratorBase {
    private JsonGeneratorBase() {}
    public static Gson getGson() {
        return new GsonBuilder()
                .registerTypeAdapter(Date.class, new GsonUTCDateAdapter())
                .disableHtmlEscaping()
                .create();
    }
}
