2013-09-26 40 views
2

我想解析一個使用SimpleDateFormat工作的韓文日期格式的日期。但是我想刪除在年份(년),月份(월)和日期(日)等模式中添加韓文字符的任何依賴。在韓語解析日期

String dateinKorean = "2013년 9월 26일 (목)"; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy'년' M'월' d'일' '('EE')'", Locale.KOREA); 
    try { 
     Date dt = sdf.parse(dateinKorean); 
     System.out.println(dt.toGMTString()); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

我想使用的DateFormatSymbols類使用的語言環境來解析日期,但問題是我不能夠解析完整的日期,我可以分析個別月份(MM),年份(年)或日(日)沒有任何問題。

 DateFormatSymbols df = DateFormatSymbols.getInstance(Locale.KOREAN); 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd", df); 
     try { 
      // 2013년 9월 26일 
      Date dt = sdf.parse("2013년 9월 26일"); 
     } catch (ParseException e) { 

     } 

任何人都可以請幫助我確定是否有任何其他方式來解析除上面顯示的日期?

回答

0

如果日期格式包含「固定」字符,則它們按原樣使用,所以如果在格式中包含「年」或「月」等字樣,則不能忽略。

您可以通過分析前去除從字符串中的所有非數字字符,例如破解解決這個自己的方式:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", df); 
    Date dt = sdf.parse("2013년 9월 26일".replaceAll("\\D+", "-")); 

一個更好的解決辦法是internationalizing的日期格式,以便每次支持可能有語言它自己的格式。