Подтвердить что ты не робот

Получение года, месяца и даты на Android

Я пытаюсь получить сегодня Year, Month и Date, используя следующий код:

Calendar calendar = Calendar.getInstance();

int thisYear = calendar.get(Calendar.YEAR);
Log.d(TAG, "# thisYear : " + thisYear);

int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + thisMonth);

int thisDay = calendar.get(Calendar.DAY_OF_MONTH);
Log.d(TAG, "$ thisDay : " + thisDay);

Но он дает "2012 год за год за месяц и 28 на дату", который не является сегодня. Что я сделал неправильно?

4b9b3361

Ответ 1

Правильно ли я предполагаю, что это работает на эмуляторе? Если да, установите дату эмулятора правильно, и это должно быть правильно.

Из памяти этот код должен делать то, что вы ожидаете.

Ответ 2

Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
calendar.get(Calendar.YEAR)

Ответ 3

Месяц начинается с нуля, поэтому вам нужно добавить 1 с данным месяцем, чтобы показать номер месяца, с которым мы знакомы.

int thisMonth = calendar.get(Calendar.MONTH);
Log.d(TAG, "@ thisMonth : " + (thisMonth+1));

Это покажет вам текущий месяц, начинающийся с 1.

Ответ 4

Я пробовал ваш код и дает правильный вывод. Вы должны попробовать проверить время в своем эмуляторе/телефоне, на котором вы пытаетесь использовать этот код.

В соответствии с документами getInstance он устанавливает текущую дату и время по умолчанию.

Ответ 5

Попробуйте использовать:

Date dt = new Date(); 
dt.getYear(); 
dt.getMonth(); 
dt.getDay();

и посмотрите, получится ли у вас тот же результат. Если да, то ваша системная дата, вероятно, не синхронизирована. Для более подробной информации документацию по классу даты:

Ответ 6

Это дает время и дату вашей системы Android, поэтому сначала проверьте это.