Вопрос

Я пытаюсь сравнить даты, и я нашел, где мой код пойдет не так, но я не знаю почему.

Я пытаюсь сравнить свидание с сегодняшней датой (используя только григорианские календари). Я напечатал сегодняшнюю дату, когда он когда-либо упоминается в коде, и в одном месте он волшебным образом меняется с 2010 года до 3910 года (сегодняшний год + 1900 год).

Кто-нибудь знает причину для этого?

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 2010
System.out.println(todaysDate);

//Getting a year from a string (it is 2010)
todaysDate.setYear(Integer.parseInt(yea));

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 3910   
System.out.println(todaysDate);
Это было полезно?

Решение

Дата обычно хранится как «количество лет с 1900 года», поэтому вам нужно компенсировать это. Вы можете увидеть, что в документации для Date: http://developer.android.com/reference/java/util/date.html.

Редактировать: Я должен упомянуть, что я размещал как комментарий. Джефф Шарки рекомендовал против класса календаря (если вы тоже их используете). Android.text.format.dateutils гораздо более легкий (вы увидите, что телефон стойки немного, когда вы сначала загружаете календарный класс, особенно на старых телефонах). DateutiLs доступен в Android 1,5 и выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top