Java 什么';这是从这些字符串中获取数值的最佳方法
我有几个字符串,比如“20160621060000”,实际上是一个日期: 年:2016年,月:06日:21时:06分:00秒:00 我需要像上面那样拆分它并保存这些数据,但我遇到了一些问题,因为“20160621060000”的铸造值太大了,所以我得到的铸造值如下:2.01606210515E13(这里到底发生了什么?) 这是我的密码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)
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文件中解析出来的!塔克斯人很多