Você teve problemas com sua aplicação depois do horário de verão? seu servidor está com a hora certa seu banco também porém sua aplicação continua a trazer o horário errado?
É muito provável que o problema esteja em seu Glassfish pois por padrão ele não vem configurado o Time Zone.
Para resolver esse problema é só setar uma propriedade no gerenciador veja como abaixo:
Vá em “Configurations -> server-config -> System Properties”
Na janela ao lado clique em “Add Property” e insira os seguintes dados:
“instance variable name”: user.timezone
“default value”: Brazil/East
Caso essa não seja sua Time Zone você pode encontrar nesse Link
Reinicie o Glassfish e pronto.