Java 将日期字符串转换为另一个字符串

Java 将日期字符串转换为另一个字符串,java,android,sql,date,datetime,Java,Android,Sql,Date,Datetime,如何将2014-10-13T10:41:22.863+08:00转换为2014-10-13 10:41 我没有这样做: String date = "2014-10-13T10:41:22.863+8:00"; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date dateTime = null; try { dateTime = dateFormat.parse(date); } cat

如何将2014-10-13T10:41:22.863+08:00转换为2014-10-13 10:41

我没有这样做:

String date = "2014-10-13T10:41:22.863+8:00";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date dateTime = null;
try {
    dateTime = dateFormat.parse(date);
} catch(ParseException e) { ... }
System.out.printf(dateTime.toString()); ... 
给予

语法异常2014-10-13T10:41:22.863+8:00

试试这个方法,希望这能帮助你解决你的问题

末尾的Z通常是时区偏移。如果你不需要它,也许你可以把它放在两边

SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try{
    Date d = df1.parse("2014-10-13T10:41:22.863+8:00");
    System.out.println("new date format " + df2.format(d));
}catch(Exception e){
   e.printStackTrace();
}

如果在以正确格式打印日期之前不需要对日期进行操作,则可以使用以下命令直接将字符串转换为yyyy MM dd HH:MM:

String date = "2014-10-13T10:41:22.863+8:00";

date = date.substring(0, 16);  // 2014-10-13T10:41, remove value after minutes
date = date.replace("T", " "); // 2014-10-13 10:41, replace the 'T' character

System.out.println(date);      // 2014-10-13 10:41
否则,如果您想事先解析它,那么将模式更改为yyyy-MM-dd'T'HH:MM注意字符串常量'T'的附加值


获得ParseException的原因是,用于解析yyyy MM dd HH:MM的格式与源yyyy MM dd'T'HH:MM不同。。。。您的SimpleDataFormatter希望在日期后使用空格,而不是字符“T”。

Related:实际上是使用replace…thahks!或者,您可以一直拆分和子字符串,而不首先将其转换为日期。非常感谢您以这种方式回答我所想的问题,只是想看看是否有更好的方式。非常感谢您以这种方式回答问题非常好,成功地解决了我的问题,非常感谢。
String date = "2014-10-13T10:41:22.863+8:00";

// parse the String to Date
SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
Date dateTime = null;
try {
    dateTime = sourceFormat.parse(date);
} catch (ParseException e) {
    e.printStackTrace();
}
System.out.println(dateTime.toString()); // Mon Oct 13 10:41:00 SGT 2014

// print the Date in expected format
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
System.out.println(targetFormat.format(dateTime)); // 2014-10-13 10:41