我有一个类(class)正在准备 db 格式
的日期如 2015 年 2 月 13 日到 2015 年 2 月 13 日。不幸的是,这个功能适用于英语、法语,但不适用于中文。
这是我得到的:
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 嵌入式类中提供。
最佳答案
对于您的输入格式,您不必使用区域设置构造 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);
关于java - Spring - DateFormat 未正确格式化中国的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29766049/