用韩语解析约会

时间:2013-09-26 11:28:21

标签: java simpledateformat

我正在尝试使用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类来使用Locale解析日期,但问题是我无法解析完整的日期,我可以解析单个月(MM),年(yyyy)或日(dd) )没有任何问题。

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

        }

有人可以帮我确认是否有其他方法来解析上述以外的日期?

1 个答案:

答案 0 :(得分:0)

如果日期格式包含“固定”字符,则按原样使用,因此如果您在格式中包含“年”或“月”等字词,则无法忽略。

您可以通过在解析之前删除字符串中的所有非数字来解决此问题,例如:

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

更好的解决方案可能是internationalizing日期格式,以便您支持的每种语言都可以采用自己的格式。