Sto tentando di eseguire il debug di un problema in un codice precedente.Perché i valori dell'oggetto java.util.calendar cambiano dopo una chiamata a get (int)
ho ridotto il problema al seguente metodo:
public String formatDateTimeFromCalendar (Calendar cal){
StringBuffer sb = new StringBuffer();
String hr = ""+cal.get(Calendar.HOUR_OF_DAY);
sb.append(String.format("%02d", hr));
sb.append(":");
sb.append(String.format("%02d", cal.get(Calendar.MINUTE)));
sb.append(" on ");
sb.append(String.format("%02d", cal.get(Calendar.DAY_OF_MONTH)));
sb.append("/");
sb.append(String.format("%02d", cal.get(Calendar.MONTH)+1));
sb.append("/");
sb.append(cal.get(Calendar.YEAR));
return sb.toString();
}
debug linea 2 il parametro cal
è una data futura. (2015-01-06T00: 00: 00.000Z)
Dopo l'esecuzione della linea 3 con i primi cal.get(
valori cal
del param sono cambiati (a 2014-12-12T00: 00: 00.000Z)
Perché/come può essere?
Qui è dove si crea il calendario:
Calendar startDateAndTime = Calendar.getInstance();
startDateAndTime.setTime(response.getStartDate().toGregorianCalendar().getTime());
startDateAndTime.set(Calendar.HOUR_OF_DAY, response.getStartTime().getHour());
startDateAndTime.set(Calendar.MINUTE, response.getStartTime().getMinute());
startDateAndTime.set(Calendar.SECOND, response.getStartTime().getSecond());
startDateAndTime.set(Calendar.MILLISECOND, response.getStartTime().getMillisecond());
response.getStartDate()
restituisce un XMLGregorianCalendar
è l'oggetto del calendario passato utilizzato in più di un thread? – geert3
Si noti che si sta utilizzando un 'String' come argomento nel formato'% 02d', che richiede normalmente un intero. – geert3
Nessun thread esplicitamente. Fa parte di un'app Web. –