什么是从这些字符串中获取数值的最佳方法

时间:2016-06-20 14:22:31

标签: java android casting

我有几个像这样的字符串" 20160621060000",实际上是一个日期:

年份:2016年,月份:06,日:21,小时:06,分钟:00,秒:00

我需要像上面所做的那样拆分它并保存这些数据,但是我遇到麻烦会导致" 20160621060000" Double是太大了所以我得到像这样的铸造价值:2.01606210515E13(这里究竟发生了什么?)

这是我的代码

Double StartValue = Double.parseDouble(StartDate);
System.out.println(StartValue);

我也不能

int Year = Startvalue/10000000000

(10 ^ 10)因为我得到"整数过大" 有人可以帮我找到办法吗?

4 个答案:

答案 0 :(得分:0)

使用BigDecimal而不是double。

答案 1 :(得分:0)

使用Long.parseLong(StartDate);代替Double.parseDouble(StartDate);

答案 2 :(得分:0)

如果数字太大,你应该使用long而不是int。

如果此号码是日期,您可以使用SimpleDateFormatter https://developer.android.com/reference/java/text/SimpleDateFormat.html

例如:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-hh.mm.ss");
String daytime = formatter.format(yourDate);

答案 3 :(得分:-1)

尝试使用Format转换为数据:

SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = formatter.parse("2016 06 21 06 00 00");

有关详细信息,请使用this链接。