Tha*_*nga 6 java string numberformatexception
我必须从DB中获取时间戳并仅检索时间并比较两次.
//下面是字符串值
String st1 = "2015-07-24T09:39:14.000Z";
String st2 = "2015-07-24T09:45:44.000Z";
Run Code Online (Sandbox Code Playgroud)
//只检索时间09:39:14
String s = st1.substring(st1.indexOf("T") + 1, st1.indexOf(".0"));
Run Code Online (Sandbox Code Playgroud)
//字符串为Long.
Long time = Long.parseLong(s);
Long tim1=Long.valueOf(s).longValue();
Run Code Online (Sandbox Code Playgroud)
错误:
java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
如何做以上操作.这不是重复的,这个和这个..我已经检查了所有的QA ..
小智 10
试试这种方式,示例代码:
java.sql.Timestamp ts2 = java.sql.Timestamp.valueOf("2015-07-24T09:45:44.000Z");
long tsTime2 = ts2.getTime();
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用 SimpleDateFormat(与 JODA 时间相比可能不是最好的)
public static void main(String[] args) throws ParseException {
String st1 = "2015-07-24T09:39:14.000Z";
String st2 = "2015-07-24T09:45:44.000Z";
String time1 = st1.substring(st1.indexOf("T") + 1, st1.indexOf(".0"));
String time2 = st2.substring(st2.indexOf("T") + 1, st2.indexOf(".0"));
Date dateTime1 = new java.text.SimpleDateFormat("HH:mm").parse(time1);
Date dateTime2 = new java.text.SimpleDateFormat("HH:mm").parse(time2);
System.out.println(dateTime1.after(dateTime2));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25644 次 |
| 最近记录: |