2012-05-04 37 views
11

Quiero formatear 2012-05-04 00:00:00.0 a 04-MAY-2012. Lo he intentado con los siguientes pasos.Formato de fecha 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(); 
    } 

pero me dio más adelante excepción.

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

¿Cómo puedo hacer esto?

+4

¿No hay una 'T' extra en su primer patrón? –

Respuesta

16

Aquí, esto funciona:

  1. Retire el extra 'T' en su primer patrón
  2. El segundo formato es incorrecto, debe ser dd-mmm-aaaa.

Ven a ver el Javadoc de 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

Creo que si elimina el 'T', funcionará.

1

El uso de este patrón:

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

No usar este:

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