输出不是预期的(8 月 20 日星期二 07:52:00 IST 2019)

output is not what is expected (Tue Aug 20 07:52:00 IST 2019 )

输出应该与

相同

(dd-MM-yyyy HH:mm)

但可以看到

"Tue Aug 20 07:52:00 IST 2019"

String[] tokens = lastupdated.split(": | \(");
Date date1 = new SimpleDateFormat("dd-MM-yyyy HH:mm").parse(tokens[1]);
System.out.println(date1); 

首先 println date1 不是一个有效的 java 语法,你应该使用 System.out.println()

第二件事是,如果你想以 dd-MMM-yyyy HH:mm 格式打印日期,那么你需要使用 SimpleDateFormat format 函数

试试这个

String lastupdated = "Mubasher Last Update Time: 20-Aug-2019 07:42 (GMT)";
String[] tokens = lastupdated.split(": | \(");
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy HH:mm");
Date date = sdf.parse(new String(tokens[1]));
System.out.println(sdf.format(date));

输出

20-Aug-2019 07:42

您应该使用自定义格式打印日期

System.out.println(new SimpleDateFormat("(dd-MM-yyyy HH:mm)").format(date1));
// First you parse the String, then you display with a custom format

否则Java将在打印时使用标准格式

当您调用 System.out.println(date1) 时,将调用 java.util.DatetoString() 方法以形成日期的字符串表示形式。 根据 oracle documentation,这将以 "dow mon dd hh:mm:ss zzz yyyy"

格式打印日期

如果你想把日期格式化成你需要的格式的字符串,那么你应该使用format方法使之成为你需要的字符串模式。

SimpleDateFormat dateFormat = ..//
String formattedString = dateFormat.format(date); //..