1. Java / Говнокод #23846

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    try {
        String sDate = new SimpleDateFormat("MM/dd/yyyy").format(new SimpleDateFormat("dd.MM.yyyy").parse(dayOfMonth + "." + (monthOfYear + 1) + "." + year));
        dueDate.setText(sDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    Красивое (и безопасное) решение проблем с разными форматами дат

    Запостил: StanDalone, 01 Марта 2018

    Комментарии (13) RSS

    • > .parse(dayOfMonth + "." + (monthOfYear + 1) + "." + year))
      Может, там изначально было что-то типа .parse(dateString)
      Ответить
      • >dayOfMonth + "." + (monthOfYear + 1) + "." + year
        Если просто сконкатенировать с intами, мы не получим
        а) автопереноса
        б) красивого паддинга даты нулями: 3/2/2018
        Ответить
    • Я бы не стал это трогать, если оно работает.
      Может использоваться для нормализации дат.

      32 12 2017 => 01/01/2018
      2 2 2018 => 02/02/2018
      итд
      Ответить
      • > 32 12 2017
        А зачем жабий парсер парсит такие странные даты?
        Ответить
        • Это не баг, а фича. Использовалось быдлокодерами для быстрого прибавления дней/месяцев.

          https://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html#setLenient%28boolean%29
          https://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html#setLenient(boolean)
          Ответить
          • Даты - такая срань, что если бы не такие фичи, все бы уже давно повесились.
            Ответить
            • >Даты - такая срань
              Учитывая крайнюю уёбищность старого жабовского апи (до 1.8) для дат.
              Calendar c = Calendar.getInstance(); 
              c.setTime(dt); 
              c.add(Calendar.DATE, 1);
              dt = c.getTime();

              Прозвучит парадоксально, но это был чуть ли не самый простой способ прибавить/вычесть что-то.
              Ответить
              • Для жабы был Joda-Time в свое время, он не плохо заменял уебанство с датами
                Ответить
                • Давай, давай, а ну, давай,
                  Меня шмонай ты, вертухай,
                  Да загляни под юбочку,
                  Да посмотри на булочки.
                  Понюхай попку носиком,
                  Прикинься, киса, пёсиком,
                  Вот в этом вся и разница,
                  Кто хочет, а кто дразнится.

                  ©Любимая группа мамки админа
                  Ответить
                • Давай, давай, а ну, давай,
                  Меня шмонай ты, вертухай,
                  Да загляни под юбочку,
                  Да посмотри на булочки.
                  Понюхай попку носиком,
                  Прикинься, киса, пёсиком,
                  Вот в этом вся и разница,
                  Кто хочет, а кто дразнится.

                  ©Любимая группа мамки админа
                  Ответить
                • Давай, давай, а ну, давай,
                  Меня шмонай ты, вертухай,
                  Да загляни под юбочку,
                  Да посмотри на булочки.
                  Понюхай попку носиком,
                  Прикинься, киса, пёсиком,
                  Вот в этом вся и разница,
                  Кто хочет, а кто дразнится.

                  ©Любимая группа мамки админа
                  Ответить
                • Давай, давай, а ну, давай,
                  Меня шмонай ты, вертухай,
                  Да загляни под юбочку,
                  Да посмотри на булочки.
                  Понюхай попку носиком,
                  Прикинься, киса, пёсиком,
                  Вот в этом вся и разница,
                  Кто хочет, а кто дразнится.

                  ©Любимая группа мамки админа
                  Ответить
    • Красивое (и безопасное) решение :
      } catch (ParseException e) {
      e.printStackTrace();
      }

      зы: мну чует Intellij: они генерят такой прекрасный catch
      Ответить

    Добавить комментарий