我的课程正在准备从2015年2月13日到2015年2月13日的db format
的日期。不幸的是,这个功能适用于英语,法语,但不适用于中文。
这是我得到的:
public class DateFormatTag extends TagSupport {
@Override
public int doStartTag() throws JspException {
out.println(dateFormat(getInput()));
}
public String dateFormat(String input) throws ParseException {
Locale locale = new Locale("cn", "zh");
DateFormat df = new SimpleDateFormat("yyyy/MM/dd", locale);
Date date = df.parse(input);
SimpleDateFormat returnFormat = new SimpleDateFormat("dd MMMMM yyyy", locale);
return returnFormat.format(date);
}
我故意将中文语言硬编码以便进行测试。输入格式为:2015/02/15(yyyy / mm / dd)。
我找不到更好的解决方案来解决这个问题。任何建议将不胜感激。
可以在Joda Time或Java嵌入式类中提供解决方案。
答案 0 :(得分:1)
对于您的输入格式,您不必使用区域设置构建SimpleDateFormat
对于输出,应该读取the doc for Locale
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
Date date = df.parse(input);
SimpleDateFormat returnFormat
= new SimpleDateFormat("dd MMMMM yyyy", Locale.CHINA);
// or Locale.CHINESE, Locale.PRC, all work on my machine
return returnFormat.format(date);