Не могу конвертировать из String в int в Java - PullRequest
0 голосов
/ 19 мая 2019

Я получаю текущее время и хочу преобразовать его в целое число, это то, что я сделал, но оно продолжает давать мне java.lang.NumberFormatException: For input string: "4:12:31"

            long unixTime = System.currentTimeMillis() / 1000L;
            Date time=new java.util.Date((long)unixTime*1000);
            Calendar cal = Calendar.getInstance();
            cal.setTime(time);
            int hours = cal.get(Calendar.HOUR_OF_DAY);
            int minutes = cal.get(Calendar.MINUTE);
            int seconds = cal.get(Calendar.SECOND);


            int currentTime = (int) Double.parseDouble((hours+":"+minutes+":"+seconds));

1 Ответ

3 голосов
/ 19 мая 2019

Вы не можете этого сделать. Если вам нужно сравнить время, используйте LocalTime.

    LocalTime b = LocalTime.of(17, 30);//hh,mm,ss

    LocalTime c = LocalTime.parse("20:30:30");//hh:mm:ss

    System.out.println(b.isBefore(c));//true, also there are methods like compareTo, isAfter

Если вам нужно сравнить даты, есть также класс с именем LocalDate. Если вам нужно сравнить даты и время, вы можете использовать LocalDateTime. Сравнение этих объектов такое же, как сравнение двух LocalTime объектов.

LocalTime.of и .parse являются статическими фабричными методами. Они используются для создания новых экземпляров LocalTime. С точки зрения пользователя, они работают как конструкторы - вы вызываете их и получаете взамен объект своего класса. Подробнее о них и конструкторах вы можете прочитать здесь: Java Constructors vs Static Factory Methods .

...