NumberFormatException:无效长:“588657600000-0400”

时间:2013-04-09 01:52:55

标签: java

-588657600000-0400我的回答是这样的。我无法将其转换为日期格式,因为这是一个无效的长。

new Date(Long.parseLong("/Date(-588657600000-0400)/")); 

无论如何,当我们以这种格式获得响应String时,我们实际上可以构造一个新的Date对象。这个问题与之前提到的这个问题有关。 java.lang.Long.parseLong Exception

此处抛出的异常是“04-09 01:39:25.793:E / AndroidRuntime(8011):java.lang.NumberFormatException:无效长:”588657600000-0400“

我试着查看Calendar类http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html但是找不到一个方法来获取Date对象而不传递Long。

1 个答案:

答案 0 :(得分:3)

将输入字符串拆分为2个值怎么样?

Date foo2 = new Date(Long.parseLong("-588657600000") + Long.parseLong("-0400"));
不过,那个日期是:Mon May 07 16:59:59 BRT 1951 hehehe

编辑:

这不检查输入值,并假设总是有负

import java.util.Date;

public class MiMiMi {

    public static void main(String[] args) {

        String input = "/Date(-588657600000-0400)/";
        input = input.replace("/Date(", "");
        input = input.replace(")/", "");

        String[] pair = input.split("-");
        System.out.println(pair[1]);
        System.out.println(pair[2]);

        Date foo = new Date(Long.parseLong("-" + pair[1])
                + Long.parseLong("-" + pair[2]));

        System.out.println(foo);
    }

}