2012-05-04 17 views
11

Chcę sformatować 2012-05-04 00:00:00.0 na 04-MAY-2012. próbowałem go z poniższymi krokami.Format daty 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(); 
    } 

ale dostałem poniżej wyjątku.

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

Jak mogę to zrobić?

+4

Czy w twoim pierwszym wzorze nie ma dodatkowego "T"? –

Odpowiedz

16

Tutaj działa to:

  1. usunąć dodatkowy 'T' w pierwszym wzór
  2. Drugi format jest nieprawidłowy, należy DD-MMM-rrrr.

Spójrz na Javadoc z 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

Myślę, że po usunięciu 'T' zadziała.

1

Stosując ten schemat:

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

Nie rób tego przy użyciu:

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