日期格式JAVA

我想格式化2012-05-04 00:00:00.004-MAY-2012 。 我已经尝试过以下步骤。

  SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd 'T' HH:mm:ss.SSS"); Date date; String dateformat = ""; try { date = sdf.parse("2012-05-04 00:00:00.0"); sdf.applyPattern("DD-MON-RR"); dateformat = sdf.format(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

但我得到了以下exception。

 java.text.ParseException: Unparseable date: "2012-05-04 00:00:00.0" at java.text.DateFormat.parse(DateFormat.java:337) at com.am.test.Commit.main(Example.java:33)` 

我怎么能这样做?

在这里,这工作:

  1. 删除第一个模式中的额外“T”
  2. 第二种格式不正确,应该是dd-MMM-yyyy。

看一下SimpleDateFormat的Javadoc

 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class temp2 { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); Date date; String dateformat = ""; try { date = sdf.parse("2012-05-04 00:00:00.0"); sdf.applyPattern("dd-MMM-yyyy"); dateformat = sdf.format(date); System.err.println(dateformat); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 

我想如果你删除'T'它会起作用。

使用这种模式:

 sdf.applyPattern("DD-MMM-YYYY"); 

不要使用这个:

 sdf.applyPattern("DD-MON-RR"); 
 public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); Date oldFormatedDate = null; try { oldFormatedDate = sdf.parse("2012-05-04 00:00:00.0"); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(new SimpleDateFormat("dd-MMM-yyyy"). format(oldFormatedDate)); } 
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); Date date; String dateformat = ""; try { date = sdf.parse("2012-05-04 00:00:00.0"); sdf.applyPattern("dd-MMM-yyyy"); dateformat = sdf.format(date); System.out.println(dateformat); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); }