SimpleDateFormat.format retorna a hora anterior  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
fgsl
Entusiasta Java
[Avatar]

Membro desde: 10/09/2008 09:12:55
Mensagens: 23
Localização: *
Offline

O método a seguir está retornando a hora como texto com um decremento de 1, em relação a hora configurado no objeto Date passado como parâmetro. Por exemplo, se a hora em date é 6, na string vira 5, se é 12 vira 11.



Não entendi porque isso ocorre, mesmo após ver o fonte do método format.

Estou usando:



E a string do formato de hora é "HH:mm:ss"

Flávio Gomes da Silva Lisboa
Analista de Desenvolvimento de Sistemas
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
robinsonbsilva
GUJ Ranger
[Avatar]

Membro desde: 27/10/2004 12:01:50
Mensagens: 761
Offline



http://www.arquivodecodigos.net/sistema/main/visualizar_dica/2432

Sun Certified Java Programmer Standard Edition 6.0
[MSN]
fgsl
Entusiasta Java
[Avatar]

Membro desde: 10/09/2008 09:12:55
Mensagens: 23
Localização: *
Offline

O problema não é com a Classe Date, mas com o parsing de SimpleDateTime para gerar o Date.

Agora percebi que eu inverti a situação no texto, na verdade a hora retornada é o incremento de 1 da original.

Assim, a string de hora 05:59:24 se transforma no objeto Date 06:59:24. E se eu usar 00:15:45 vou ter 01:15:45.

Isso não faz sentido, porque já estou determinando o valor da hora. Não é como o argumento do mês que é de 0 a 11.

Senão vou ter que passar -01:30:21 pra ter 00:28:12.

Esse é o problema.

Flávio Gomes da Silva Lisboa
Analista de Desenvolvimento de Sistemas
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Que timezone é esse ("BRA")?

Os timezones para o Brasil são:

"Brazil/Acre"
"Brazil/DeNoronha"
"Brazil/East"
"Brazil/West"
[WWW]
fgsl
Entusiasta Java
[Avatar]

Membro desde: 10/09/2008 09:12:55
Mensagens: 23
Localização: *
Offline

O criador do código havia colocado BET.

Fui pesquisar BET neste endereço:

http://www.worldtimezone.com/wtz-names/

E vi que era Bering Standard Time (UTC-11)

Procurei no mesmo local timezone para o Brasil e encontrei BRA.

Fiz a alteração para "Brazil/East" e rodei novamente o teste, mas continua do mesmo jeito.

Ah, obrigado pela lista de timezones.

Flávio Gomes da Silva Lisboa
Analista de Desenvolvimento de Sistemas
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Se você está em um lugar onde o horário de verão está em vigor (São Paulo, RJ, BSB etc.), então o timezone corrente não é GMT-3 e sim "Brazil/East". Mas deve haver mais algum problema em algum ajuste no seu sistema.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Ah, e seu código sempre está criando um timezone, em vez de usar um que já existe. Você deveria usar algo como:
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team