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.
public static String toString(Date date, String s, TimeZone timezone)
{
if(date == null)
{
return GenericFormatter.fillRight("", ' ', s.length());
} else
{
SimpleDateFormat simpledateformat = new SimpleDateFormat(s);
simpledateformat.setTimeZone(timezone);
return simpledateformat.format(date);
}
}
Não entendi porque isso ocorre, mesmo após ver o fonte do método format.
Estou usando:
private static int timeZone = -3; // GMT -3
private static SimpleTimeZone brazilianTimeZone = new SimpleTimeZone(timeZone * 60 * 60 * 1000, "BRA");
E a string do formato de hora é “HH:mm:ss”
