将UTC日期从科学记数法转换为Java.util.Date

Kri*_*s B 2 java date

我正在尝试将created_utc日期从Reddit的json转换为Date对象,但我不断收到"Unparceable"错误.他们的日期的一个例子是:created_utc": 1.43701862E9,我被告知是一个unix时间戳.

根据我的研究,这段代码应该转换它:

String date = "1.43701862E9";
java.util.Date time = new java.util.Date((long)date*1000);
Run Code Online (Sandbox Code Playgroud)

但显然我在将日期乘以1000时遇到错误.

这是我通常用来转换字符串日期的代码:

    String date = "1.43701862E9";
    Calendar cal = Calendar.getInstance(TimeZone.getDefault());
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
    format.parse(date);
Run Code Online (Sandbox Code Playgroud)

Cub*_*key 5

这应该适合你:

public static void main(String[] args) {

    String date = "1.43701862E9";
    java.util.Date time = new java.util.Date(Double.valueOf(date).longValue()*1000);

    System.out.println(time);
}
Run Code Online (Sandbox Code Playgroud)

输出:

Wed Jul 15 23:50:20 EDT 2015
Run Code Online (Sandbox Code Playgroud)

由于你使用科学记数法,你不能解析String使用Long类:( Long.parseLong(String s)你也不能简单地转换一个字符串,因为你正在尝试).相反,我使用了该Double.valueOf()方法并保留了Long使用方法.longValue()