Wenn ich Debugging durch jeden Schritt, um den Kalender zu initialisieren, ist das Datum korrekt auf 31.07.2016 festgelegt. Aber wenn ich über die Kalendermethode gehe, wird das Datum falsch auf den 02.08.2016 gesetzt. Kann jemand dieses unerwartete Verhalten erklären?unerwartetes Verhalten bei der Verwendung von Kalender in Java eingeben
import java.util.Calendar;
public class Test {
public static void main(String[] args)
{
Calendar startCalendar = initializeCalendar("31.07.2016");
}
private static Calendar initializeCalendar(String date)
{
int[] dateValues = extractDate(date);
Calendar calendar = createCalendar();
calendar.set(Calendar.DAY_OF_MONTH, dateValues[0]);
calendar.set(Calendar.MONTH, dateValues[1]-1);
calendar.set(Calendar.YEAR, dateValues[2]);
return calendar;
}
private static Calendar createCalendar()
{
Calendar calendar = Calendar.getInstance();
calendar.clear();
return calendar;
}
private static int[] extractDate(String date)
{
String[] ddmmyyy = date.split("\\.");
return new int[]{Integer.parseInt(ddmmyyy[0]), Integer.parseInt(ddmmyyy[1]), Integer.parseInt(ddmmyyy[2])};
}
}
Können Sie Ihren Code geschrieben mit Kommentaren in den Zeilen aktualisieren, bei denen das Datum richtig und falsch? – bradimus
Dies funktioniert korrekt. Und warum nicht ein 'SimpleDateFormat' verwenden ?! – Tunaki