Data com uma hora adiantada

Pessoal, sei que a dúvida é antiga e existem milhões de tópicos sobre o assunto, peço desculpas desde já, mas estou há dois dias fuçando aqui e ali e ainda não consegui resolver o problema.

Vamos lá, a data/hora do java esta vindo 1 hora adiantada em relação a do S.O (windows 10 em Pt-BR). Aplicação local desktop, banco de dados Derby embutido.

Será que é porque a mudança de horário foi alterado de última hora? pq o normal é mudar o horario de verão no 3º domingo de outubro e acabar no 3º domingo de fevereiro.

    `System.out.println(System.getProperty("user.timezone"));
        System.out.println(new Date());
        System.out.println(Calendar.getInstance().getTime());
        System.out.println(new GregorianCalendar(TimeZone.getTimeZone("GMT-2") , new Locale("pt_BR")).getTime());`

Saída
America/Sao_Paulo
Wed Oct 24 13:43:37 BRST 2018
Wed Oct 24 13:43:37 BRST 2018
Wed Oct 24 13:43:37 BRST 2018
Sendo que no relógio do windows são 12:43:37.
Coloquei GMT-2 pois o padrão é GMT-3, então teoricamente teria que diminuir uma hora. Tentei colocar os parâmetros na execução da aplicação tambem.
-Duser.Timezone=America/Sao_Paulo
-Duser.Timezone=GMT-2
-Duser.language=pt
-Duser.country=BR
E tentei um monte de gambiarra que não acho interessante ficar citando aqui, nada adiantou, tanto nos logs do java/netbeans quanto na minha aplicação a hora vem com 1 hora adiantada.

Alguém tem ideia do que posso fazer para resolver ?

atualiza a versão do java amigo…
https://pt.stackoverflow.com/questions/295593/erro-na-formata%C3%A7%C3%A3o-de-data-quando-%C3%A9-no-dia-do-hor%C3%A1rio-de-ver%C3%A3o-brasileiro-brst

Boa tarde!
Obtive problemas também com relação a horário devido ao horário de verão.
No meu caso, consegui resolver desmarcando a opção de “Ajustar automaticamente o horário de verão” no relógio do windows.

Putaqueospariu kkkk vlw blayd2015, não passei por esse link nas minhas buscas, vou atualizar aqui.

no meu caso, não posso atualizar o java por enquanto, questões antigas de compatibilidade, estou trabalhando nisso agora, mas uma alternativa pra isso é: como no meu caso, eu gravo só o “Date” sem a hora, mas não sei pq, a Criteria estava usando a hora mesmo passando um Date como filtro pra uma coluna do tipo Date, só Date, sem time.
Então se eu fizesse uma consulta depois das 23 horas e antes das 00 horas, dava problema, vinham registros que não eram pra vir, pq a data que eu passava estava uma hora adiantada.
A solução é simples, setar o valor “0” pra hora, minuto e segundo, tanto na hora de salvar os objetos quantos antes de realizar a consulta.
Detalhe: com o postgresql não tenho esse problema, se o campo é Date, retornava normal, mas na aplicação embedded que os vendedores usam, o banco é o Derby, e é com ele que o problema ocorria, mesmo sendo a coluna só do tipo Date.

no mesmo link ensina apenas atualizar o tzdata da JVM sendo desnecessário a atualização do JDK, fiz isso aqui na empresa tbm e deu certinho…