Eu tive problema com o TimeZone no mySql. No MEU caso, primeiro tentei resolver colocando o parâmetro abaixo no persistence.xml, mas NÃO RESOLVEU:
Depois notei que o meu problema estava na maneira como o próprio mySql estava configurado. Então resolvi colocar o timezone na variável global do server, e FUNCIONOU:
SET @@global.time_zone = '-4:00';
Este valor pode ser atribuído via linha de comando, ou para quem usa o MySQL Workbench, basta logar como root e executar o comando numa Query.
Também é possível criar a string de conexão da seguinte forma:
"jdbc:mysql://localhost:3307/financeiro?useTimezone=true&serverTimezone=UTC&useSSL=false", "root", "minha_senha"
Espero ter ajudado.