【问题标题】:Parsing a date in Korean用韩语解析日期
【发布时间】:2013-09-26 11:28:21
【问题描述】:

我正在尝试使用有效的 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) {

        }

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

【问题讨论】:

    标签: java simpledateformat


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-05
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2014-10-04
      • 1970-01-01
      相关资源
      最近更新 更多