2016-03-30 21 views
0

Excel hücre dosyasından okuma aldığım tarih biçimini değiştirmek istiyorum "30-mar-2016" ile 03/30/2016. Ayrıştırılamayan tarihi: "30-mar-2016" Ben O bana-java.text.ParseException verdideğiştirilme tarihi biçimi DD-MON-YYYY - GG/AA/YYYY

 String inputDate = "30-mar-2016"; 
    DateFormat df = new SimpleDateFormat("mm/dd/yyyy"); 
    Date startDate; 
    startDate = df.parse(inputDate); 

aşağıda çalıştık. Ben de kod

 String inputDate = "30-mar-2016"; 
    DateFormat df = new SimpleDateFormat("mm/dd/yyyy"); 
    String startDate; 
    startDate = df.format(inputDate); 

alma aşağıda çalıştı - java.lang.IllegalArgumentException: herkes bana yardımcı olabilir bir tarihi

olarak Nesne verilen formatlamak olamaz.

+2

Bak kullanarak çözdük. Bu, ayrıştırmakta olduğunuz dizenin biçimi ile eşleşmiyor. Biçim sürümünüze gelince, orijinal dizeyi önce bir 'Tarih' olarak ayrıştırmanız gerekir, sonra * biçimlendirin. Temel olarak, giriş formatı ve çıkış formatı olan bir tane olmak üzere iki 'SimpleDateFormat 'nesnesine ihtiyacınız vardır. –

+0

“dd-MMM-yyyy” biçimini kullanarak ayrıştırma. Ve dikkatle, bu [http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html] okuyun. bölüm "** Tarih ve Zaman Kalıpları **" –

cevap

3

Girdi dizginiz 30-mar-2016, dd-MMM-yyyy biçimindedir. Çıkış formatınız MM/dd/yyyy. Yani iki DateForamt s'ye ihtiyacınız var. Orijinal giriş dizgisini ayrıştırmak için bir, çıkış dizisini biçimlendirmek için bir tane.

DateFormat df1 = new SimpleDateFormat("dd-MMM-yyyy"); // for parsing input 
DateFormat df2 = new SimpleDateFormat("MM/dd/yyyy"); // for formatting output 
String inputDate = "30-mar-2016"; 
Date d = df1.parse(inputDate); 
String outputDate = df2.format(d); // => "03/30/2016" 
+0

Mükemmel Çözüm .. –

0

ben hızlı tepki için

 SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy"); 
    Date date = sdf.parse("30-mar-2016"); 
    sdf.applyPattern("MM/dd/yyyy"); 
    System.out.println(sdf.format(date));//got 03/30/2016 

sayesinde herkes Aşağıdaki SimpleDateFormat` `etmek geçiyoruz argüman olarak

İlgili konular