2013-09-01 99 views
1

我想将一个字符串时间戳转换为一个整数,而我使用postgres作为数据库。java.lang.NumberFormatException:对于输入字符串:

@Column(name = "connecte_timestamp") 
private Integer timestamp; 

SimpleDateFormat formater = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss"); 
Date aujourdhui = new Date(); 
this.timestamp = Integer.parseInt(formater.format(aujourdhui) 
       .replace("-", "").replace(" ", "").replace(":", "")); 

时间戳有bigint作为一个数据库中的type。在 的Java “01092013062024” 在java.lang.NumberFormatException.forInputString(来源不明): 当我运行我的应用程序,我得到以下堆栈跟踪:

java.lang.NumberFormatException:对于输入字符串。 lang.Integer.parseInt(Unknown Source) java.lang.Integer.parseInt(Unknown Source)at com.forum.beans.Connecte。(Connecte.java:26)at com.forum.servlets.ListageForums.doGet (ListageForums.java:32)在 javax.servlet.http.HttpServlet.service(HttpServlet.java:621)在 javax.servlet.http.HttpServlet.service(HttpServlet.java:728)在 org.apac he.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.catalina.filters.SetCharacterEncodingFilter。的doFilter在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)(SetCharacterEncodingFilter.java:108) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContex tValve.invoke(StandardContextValve.java:123) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 171) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 在 org.apache .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.a pache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) 在 org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:589) 在 org.apache.tomcat.util.net。 JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source) at java.lang。 Thread.run(未知来源)

请帮忙吗?

回答

5

1092013062024对于int使用long代替太大。我也做了一点不同

private Long timestamp; 

SimpleDateFormat formater = new SimpleDateFormat("yyyyMMddhhmmss"); 
timestamp = Long.parseLong(formater.format(new Date)); 

我觉得YYYYMMDDHHMMSS格式更符合逻辑,这使得比较和排序简单

相关问题