在Java中无法从String转换为int

时间:2019-05-19 14:07:07

标签: java type-conversion java-date

我正在获取当前时间,我想将其转换为Integer,这就是我所做的,但是它一直给我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 个答案:

答案 0 :(得分:3)

您不能那样做。如果需要比较时间,请使用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