Desculpe, eu não tenho a resposta para sua pergunta direta. No entanto, posso sugerir algo que vale a pena considerar que evitará totalmente todos os problemas de fuso horário no banco de dados. Se possível, recomendo simplesmente usar
BIGINT
campos para armazenar datas com Java. Você apenas armazena o long
do número de milissegundos desde a época, por exemplo de System.currentTimeMillis()
ou Date.getTime()
. Em seguida, a interpretação do fuso horário para uma data é sempre gerenciada em Java, o que é bom para usar o número baseado em época. Isso torna um pouco mais complicado consultar diretamente o banco de dados para uma data fora do Java, no entanto, não é muito difícil e tende a valer a pena IMO:
SELECT FROM_UNIXTIME(date_field / 1000) FROM table;