2016-03-28 25 views
-3

Tarihi bir biçime dönüştürdüğüm bir koşul var, ayrılmayacak bir Tarih İstisnası alıyorum. Sınıf için kodJava Tarih Ayrıştırma Özel Durum

public class DateTester { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     String stringDate = "Fri Feb 26 14:14:40 CST 2016"; 
     Date date = convertToDate(stringDate); 
     System.out.println(date); 
    } 

    public static Date convertToDate(String date) { 
     SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy"); 
     Date convertedCurrentDate = null; 
     try { 
      convertedCurrentDate = sdf.parse(date); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      System.out.println(e.getMessage()); 
     } 
     return convertedCurrentDate; 
    } 
} 
+1

İlk önce String'ten Date (Tarih) nesnesini/parse'sini yaratmanız ve sonra tarih nesnesini String'e veya istediğiniz herhangi bir şeye dönüştürmeniz gerekir. – kosa

+0

StringDate biçiminiz ve ayrıştırma formatınız aynı değil. Bakınız: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html – kevingreen

+1

'" Cuma 26 14:14:40 CST 2016 "' a benzemiyor "MM-dd-yyyy" 'nin – Bohemian

cevap

1

Kullanım aşağıda bu formatı yapıştırılır:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 

kodu:

public class StackOverflowSample { 
    public static void main(String[] args) { 
     String stringDate = "Fri Feb 26 14:14:40 CST 2016"; 
     Date date = convertToDate(stringDate); 
     System.out.println(date); 
    } 

    public static Date convertToDate(String date) { 
     SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
     Date convertedCurrentDate = null; 
     try { 
      convertedCurrentDate = sdf.parse(date); 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
     return convertedCurrentDate; 
    } 
} 

kaynak: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

düzenleme: Bir dönmek istiyorsanız "MM-dd-yyyy" biçimindeki tarih dizesi

)
public static void main(String[] args) { 
    String stringDate = "Fri Feb 26 14:14:40 CST 2016"; 
    Date date = convertToDate(stringDate); 
    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy"); 
    String dateFormatted = sdf.format(date); 
    System.out.println(dateFormatted); 
} 
+0

biçimi Bu, tarihi yalnızca girdi olarak yazdırır, çıkış tarihinin m/gg/yyyy biçiminde olmasını istiyorum – developer2015