2012-05-04 111 views
11

我想格式化2012-05-04 00:00:00.004-MAY-2012。我已經嘗試了下面的步驟。日期格式JAVA

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(); 
    } 

但我得到了異常。

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)` 

我怎麼能這樣做?

+4

你的第一個模式中沒有額外的'T'嗎? –

回答

16

這裏,這個工程:

  1. 在第一圖案
  2. 第二格式不正確,應該DD-MMM-YYYY刪除多餘的 'T'。

看看的SimpleDateFormat

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(); 
     } 

    } 
} 
1

我想如果你刪除了'T'它會工作。

1

的Javadoc使用此模式:

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

不要使用這樣的:

sdf.applyPattern("DD-MON-RR"); 
1
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(); 
} 
1
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)); 
}