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

Java 什么';这是从这些字符串中获取数值的最佳方法,java,android,casting,Java,Android,Casting,我有几个字符串,比如“20160621060000”,实际上是一个日期: 年:2016年,月:06日:21时:06分:00秒:00 我需要像上面那样拆分它并保存这些数据,但我遇到了一些问题,因为“20160621060000”的铸造值太大了,所以我得到的铸造值如下:2.01606210515E13(这里到底发生了什么?) 这是我的密码 Double StartValue = Double.parseDouble(StartDate); System.out.println(StartValue)

我有几个字符串,比如“20160621060000”,实际上是一个日期:

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

我需要像上面那样拆分它并保存这些数据,但我遇到了一些问题,因为“20160621060000”的铸造值太大了,所以我得到的铸造值如下:2.01606210515E13(这里到底发生了什么?)

这是我的密码

Double StartValue = Double.parseDouble(StartDate);
System.out.println(StartValue);
我也做不到

int Year = Startvalue/10000000000
(10^10)因为我得到“整数太大”
有人能帮我找到一种方法吗?

使用BigDecimal而不是double。

使用
Long.parseLong(StartDate)改为
Double.parseDouble(StartDate)

如果数字太大,则应使用long而不是int

如果此数字是日期,则可以使用SimpleDataFormatter

例如:

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

尝试使用格式转换为数据:

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

有关更多信息,请使用link.

long Year
而不是
int Year
。您真的需要离散变量中的它,还是像
Date
一样?我实际上有一个Date类,但我认为它是不相关的。您真的需要这样使用字符串吗?在单个值中获取时间点表示的正常方法是使用Linux epoch。这是自1970年1月1日以来的毫秒数。您可以使用
System.currentTimeMillis()
实现这一点,这是一种标准。使用该值,您可以构建一个
Date
gregoriacalendar
来对各个值进行操作。这些字符串是从webserviceWorked获取的XML文件中解析出来的!塔克斯人很多