1.从数据库里面获得的时间戳是String类型的,要与当前时间比较,判断登陆是否过期
生成一long类型的当前时间,把String类型强制转换成long类型报错,代码如下:
long currentTime = System.currentTimeMillis(); //当前时间
// System.out.println("currentTime" + currentTime);
long expireTime = Long.parseLong(token1.getExpireTime()); //过期时间
// System.out.println("expireTime : " + expireTime);
错误信息如下:
java.lang.NumberFormatException: For input string: "1496733869286 "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.parseLong(Long.java:631)
at com.tustcs.matrix.util.Interceptor.preHandle(Interceptor.java:45)
at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:134)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:954)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
2.发现控制台输出的当前时间不对
3.测试如下:
4.数据库信息如下:
trim一下再转long
java.lang.NumberFormatException: For input string: "1496733869286 "
你看你后面有一个空格。PS. 你这个也不叫做“String类型强制转换成long类型报错”,概念错误了
For input string: "1496733869286 "
为什么数字后面有个空格?long i = 1234893584;String s = String.valueOf(i);
这么转