Установите календарь с определенной датой и получите неправильные значения месяца

Я использую этот метод, чтобы установить время в календаре, но когда я хочу получить месяц, он дает мне месяц-1.

Например, когда я установил «2017-12-27 10:50:00». И когда я хочу получить месяц в календаре, это 11 вместо 12.

   public String setDate(String gDate){

       try {

           private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

           Date date = sdf.parse(gDate);
           javaCalendar.setTime(date);

       } catch (ParseException e) {
           e.printStackTrace();
           Log.i("LOG_DATE", "Error is: " + e.toString());
       }
       return "";
   } 

person Ehsan    schedule 27.12.2017    source источник
comment
Он начинается с 0. Это от 0 до 11.   -  person Vidhi Dave    schedule 27.12.2017
comment
поделитесь своим кодом, чтобы получить календарный месяц   -  person Apurva Kolapkar    schedule 27.12.2017
comment
Даже на Android рассмотрите возможность отказа от старых классов Date, Calendar и SimpleDateFormat и использования LocalDateTime и DateTimeFormatter из JSR-310, современного API даты и времени Java. С ним намного приятнее работать. И даст вам 12-й месяц как Month.DECEMBER или 12, по вашему выбору. Чтобы использовать JSR-310 на Android, добавьте в свой проект ThreeTenABP.   -  person Ole V.V.    schedule 27.12.2017


Ответы (1)


Это потому, что месяцы пронумерованы от 0 (январь) до 11 (декабрь).

для получения дополнительной информации посетите https://stackoverflow.com/a/344400/5602752

person Munir    schedule 27.12.2017