我正在获取当前时间,我想将其转换为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));
答案 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。