我正在尝试根据区域设置值格式化日期,我在SO中经历了this post,但我无法根据我的要求获取数据。
以下是我的尝试:
DateFormat f = DateFormat.getDateInstance(DateFormat.SHORT, Locale.UK);
String d = f.format(new Date());
System.out.println(d);
This prints the output as :27/03/15
但是对于这一年,我希望将其打印为2015
而不是15
,如输出中所示。
如果是US
语言环境,则输出应为03/27/2015
答案 0 :(得分:0)
MM
代替mm
SimpleDateFormat sf = new SimpleDateFormat("MM/dd/yyyy", Locale.UK);
答案 1 :(得分:0)
试试这个
SimpleDateFormat sf = new SimpleDateFormat("MM/dd/yyyy");
mm表示分钟,MM - 月,此处的Locale也没有效果
答案 2 :(得分:0)
您可以使用预先定义的格式,这些格式可以与给定语言环境的格式内联。或者,您创建一个包装器类/方法,以使用JDK中的默认值与您的异常格式合并。
这里是一个包装器方法的例子
public static void main(String[] args) throws Exception {
DateFormat f = getDateFormat(Locale.UK);
System.out.println("UK: " + f.format(new Date()));
f = getDateFormat(Locale.US);
System.out.println("US: " + f.format(new Date()));
}
static DateFormat getDateFormat(Locale locale) {
if (locale == Locale.UK) {
return new SimpleDateFormat("dd/MM/yyyy", Locale.UK);
} else {
return DateFormat.getDateInstance(DateFormat.SHORT, locale);
}
}