如何格式2016-02-12T15:23:20 + 02:00时间

我从我们的网络服务获得上述日期格式。 我对如何格式化日期有一个想法,我只是对它作为一个字符串的事实有问题。

我试过这个,但我需要将它作为String返回,这在某种程度上不是问题。

这是我尝试过但它引发了一个exception:

java.text.ParseException:无法解析的日期:“2016-02-26T00:00:00 + 02:00”(偏移4处)

码:

public static String formatDate(String unFormattedTime) { String formattedTime; try { SimpleDateFormat sdf = new SimpleDateFormat("dd MMM HH:mm"); Date date = sdf.parse(unFormattedTime); formattedTime = sdf.format(date); return formattedTime; } catch (ParseException e) { e.printStackTrace(); } return ""; } 

我怎么能用像dd MMM HH:mm这样的格式来格式化它?

在这里,您将获得您想要实现的工作片段:

 public class FormatDateExample { public static void main(String[] args) { String date = "2016-02-26T00:00:00+02:00"; System.out.println(formatDate(date)); } public static String formatDate(String unFormattedTime) { String formattedTime; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); Date date = sdf.parse(unFormattedTime); sdf = new SimpleDateFormat("dd MMM HH:mm"); formattedTime = sdf.format(date); return formattedTime; } catch (ParseException e) { e.printStackTrace(); } return ""; } } 

首先,您必须使用给定的格式解析日期

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); Date date = sdf.parse(unFormattedTime); 

然后你必须将该日期格式化为所需的格式“dd MMM HH:mm”

 sdf = new SimpleDateFormat("dd MMM HH:mm"); formattedTime = sdf.format(date); 

如果您使用的是Java 8,可以试试这个:

LocalDate parsedDate = LocalDate.parse(unFormattedTime,ISO_OFFSET_DATE_TIME)

参考: https : //docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_OFFSET_DATE_TIME