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)、年(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) {

        }

谁能帮我确定除了上面显示的日期之外是否还有其他方法可以解析日期?

4

1 回答 1

0

如果日期格式包含“固定”字符,它们将按原样使用,因此如果您在格式中包含“年”或“月”之类的词,它们就不能被忽略。

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

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

更好的解决方案可能是将日期格式国际化,以便您支持的每种语言都可以拥有自己的格式。

于 2013-09-26T11:48:14.493 回答