15

我有一个字符串 x = "1086073200000" 。这基本上是毫秒,我需要将其转换为日期。

要转换我正在使用

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

long tempo1=Long.parseLong(x);
System.out.println(tempo1);  // output is 86073200000 instead of the whole thing
long milliSeconds=1346482800000L;

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
System.out.println(formatter.format(calendar.getTime())); 

问题是当我将字符串 x 转换为 long 时,由于 long 大小的限制,一些数字会消失。

如何保留整个字符串。

谢谢。

4

4 回答 4

41
double tempo=Double.parseDouble(z);

你为什么要解析你的Stringwhich 应该是 a Longas a Double

尝试使用Long.parseLong

String x = "1086073200000"

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

long milliSeconds= Long.parseLong(x);
System.out.println(milliSeconds);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
System.out.println(formatter.format(calendar.getTime())); 
于 2012-09-20T00:20:57.507 回答
8

我尝试了这段代码,它对我有用

public static void main(String[] args) {
    String x = "1086073200000";
    long foo = Long.parseLong(x);
    System.out.println(x + "\n" + foo);

    Date date = new Date(foo);
    DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    System.out.println(formatter.format(date)); 
}
于 2012-09-20T00:23:25.170 回答
4
Date date = new Date(milliseconds);
于 2014-09-22T05:56:09.627 回答
4
于 2016-06-29T01:24:03.510 回答