在 Java 中将毫秒字符串转换为日期

2022-09-03 03:24:27

我有一个字符串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的大小限制,一些数字会消失。

如何保留整个字符串。

谢谢。


答案 1
double tempo=Double.parseDouble(z);

你为什么要解析你的,这应该是一个?StringLongDouble

尝试使用 :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())); 

答案 2

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

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