-6

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

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

无论如何,当我们获得这种格式的响应字符串时,我们实际上可以构造一个新的日期对象。这个问题与之前提出的这个问题有关。java.lang.Long.parseLong 异常

这里抛出的异常是"04-09 01:39:25.793: E/AndroidRuntime(8011): java.lang.NumberFormatException: Invalid long: "588657600000-0400"

我试图查看Calendar 类,http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html但找不到可以在不传递Long 的情况下获得Date Object 的方法。

4

1 回答 1

3

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

Date foo2 = new Date(Long.parseLong("-588657600000") + Long.parseLong("-0400"));

顺便说一句,那个日期是:Mon May 07 16:59:59 BRT 1951呵呵

编辑 :

这不检查输入值,并假设总是会有减号

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);
    }

}
于 2013-04-09T01:57:17.207 回答