我正在尝试使用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) {
}
有人可以帮我确认是否有其他方法来解析上述以外的日期?
答案 0 :(得分:0)
如果日期格式包含“固定”字符,则按原样使用,因此如果您在格式中包含“年”或“月”等字词,则无法忽略。
您可以通过在解析之前删除字符串中的所有非数字来解决此问题,例如:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", df);
Date dt = sdf.parse("2013년 9월 26일".replaceAll("\\D+", "-"));
更好的解决方案可能是internationalizing日期格式,以便您支持的每种语言都可以采用自己的格式。