繁体   English   中英

将字符串(时间戳)转换为整数

[英]Convert String (timestamp) to integer

我必须将字符串“ 1392298553937999872”转换为整数。 该字符串是一个时间戳。 通常,应该可以使用以下方法将其转换为int:

Integer i = Integer.valueOf(1392298553937999872);

但我收到以下异常:

java.lang.NumberFormatException:对于输入字符串:“ 1392298553937999872”

如果我使用double,它可以工作,但是数量是错误的。 那么如何将时间戳转换为整数呢?

将字符串转换为long。

String a="1392298553937999872";
long b= Long.parseLong(a);

该数字大于Integer使用的最大值Long

Long l = new Long("1392298553937999872");

您尝试转换的数字超过了Integer.MAX_VALUE值。 您最好使用BigInteger

BigInteger bigInteger = new BigInteger("1392298553937999872");

您尝试转换的值大于Integer.MAX_VALUE (2,147,483,647),您应该使用LongBigInteger的替代类型之一:

Long bigValue = Long.parseLong("1392298553937999872");
// ...
Long bigValue = new Long("1392298553937999872");
// ..
Long bigValue = Long.valueOf("1392298553937999872");
// ...
BigInteger bigValue = new BigInteger("1392298553937999872");

如果添加其他库并且值可能有所不同,则还可以使用apache commons的NumberUtils。 方法NumberUtils.createNumber(String)将根据提供的输入进行调整:

Number bigValue = NumberUtils.createNumber(inputString);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM