Поскольку я могу отделять цепь string

я нуждаюсь в том, чтобы положить дату, которая поступала бы как string пример: 21/10/2016-12:04, и эти данные преобразовывать каждый в тип информации, (int, байт), чтобы делать утверждения и потом класть их в calendar

3
задан 21.10.2016, 08:07
3 ответа

Обычное для этого конкретного случая состоит в том, чтобы использовать parseador дат, с которым ты получаешь прямо один, датируйте, что ты можешь использовать, чтобы инициализировать календарь, который ты хочешь получить.

CГіdigo

try {
    String fechaEntera = "21/10/2016-12:04";
    //transforma la cadena en un tipo date
    Date miFecha = new SimpleDateFormat("dd/MM/yyyy-HH:mm").parse(fechaEntera);

    //creo un calendario
    Calendar calendario = Calendar.getInstance();
    //establezco mi fecha
    calendario.setTime(miFecha);

    //obtener el año
    int anio = calendario.get(Calendar.YEAR);
    //obtener el mes (0-11 ::: enero es 0 y diciembre es 11)
    int mes = calendario.get(Calendar.MONTH);
    //obtener el dia del mes (1-31)
    int dia = calendario.get(Calendar.DAY_OF_MONTH);
    //obtener el hora del dia (1-24)
    int hora = calendario.get(Calendar.HOUR_OF_DAY);
    //obtener el minuto
    int minuto = calendario.get(Calendar.MINUTE);
    //obtener el segundo
    int segundo = calendario.get(Calendar.SECOND);

    //...mas campos... 

} catch (ParseException ex) {
    //manejar excepcion
}

Se могут получать больше полей смотря постоянные величины Calendar

3
ответ дан 24.11.2019, 12:59
  • 1
    Хороший ответ. Quiz и # 225; s быть и # 237; в хороший добавлять c и # 243; mo он получает каждую из стоимости. –  Mariano 21.10.2016, 12:59
  • 2
    @Mariano у тебя есть raz и # 243; n, adem и # 225; s он это комментирует в вопросе, это в и # 241; ado. –  Victor Gimeno 21.10.2016, 13:24

Ты можешь сохранять дату как String и разделять ее посредством функции split.

String fechaEntera = "21/10/2016-12:04";
String[] fechaHora = fecha.split("-"); //Ahora tenemos un array de Strings tomando como referencia el -, es decir, con dos posiciones, en la primera estará almacenado la fecha y en la segunda la hora

String[] fechaDividida = fechaHora[0].split("/"); //Dividiremos la fecha (que está almacenada en la posición 0 del array anterior) tomando como referencia los `/`.

И уже мы сможем показывать fechaDividida:

System.out.println(fechaDividida[0]); //21
System.out.println(fechaDividida[1]); //10
System.out.println(fechaDividida[2]); //2016

Сейчас мы будем делить час таким же образом как дата, но приводя в пример две точки:

String[] horaDividida = fechaHora[1].split(":");

И уже мы сможем показывать ее:

System.out.println(horaDividida[0]); //12
System.out.println(horaDividida[1]); //04

В конце концов, чтобы переходить из String в int, ты будешь должен использовать функцию parseInt:

int hora = Integer.parseInt(horaDividida[0]);

EDIT: Я только что увидел, что то, что ты хочешь, состоит в том, чтобы вводить эту стоимость в Calendar. Для этого, ты сможешь использовать функцию set.

calendar.set(anno, mes - 1, dia, hora, minutos, segundos);

В эту функцию ты будешь должен перемещать его целые данные, которых ты только что вычислил. Датируйте счет, который месяц начинает с 0, а именно, 0 - эквивалент, который нужно помещать в январе. Будь осторожен с этим, так как, если ты помещаешь 12 для декабря, он даст тебе ошибку (поэтому я отрицаю у него 1 в целую стоимость месяца, который ты перемещаешь его).

1
ответ дан 24.11.2019, 12:59

TambiГ©n существует java.util. StringTokenizer, который позволяет тебе отделять цепь начиная с символов, которые ты показываешь ему. есть много примеров использования этого, только ты должен искать.

0
ответ дан 24.11.2019, 12:59
  • 1
    Нужно упоминать о том, что documentaci и # 243; n сама StringTokenizer он не рекомендует использовать этот класс. Для тех, которые понимают ingl и # 233; s, он говорит следующее: StringTokenizer is в legacy class that is retained for compatibility reasons although its использовал is discouraged in new code. It is recommended that anyone seeking this functionality использовал the split method of String or the java.util.regex package instead. –  sstan 21.10.2016, 19:55