如何格式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