这是我的代码:
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.SimpleDateFormat;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
SimpleDateFormat date = new SimpleDateFormat("dd-MMM-yyyy", new Locale("es","ar"));
System.out.println(date.format(new Date(2014-1900,0,1)));
}
}
上面的代码返回,
01-ene-2014
但是,月份应该是句子大小写,即Ene
谁能帮我我怎样才能得到01-Ene-2014
不使用子字符串?
这不是一个错误。
SimpleDateFormat 根据当地规则使用月份名称和大小写。
在英语月份中,第一个字母大写,按照英语语法规则,这是强制性的。
西班牙语不一样。月份名称必须小写。 Java 使用本地规则。这些西班牙语规则是由例如RAE http://www.rae.es/consultas/mayuscula-o-minuscula-en-los-meses-los-dias-de-la-semana-y-las-estaciones-del-ano(皇家西班牙语学院)
此外,无法使用您自己的规则创建自定义区域设置,但您可以使用 DateFormatSymbols 类用您自己的规则覆盖月份名称。
DateFormatSymbols sym = DateFormatSymbols.getInstance(baseLocale);
sym.setShortMonths(new String[]{"Ene","Feb","Mar", /* and others */ });
new SimpleDateFormat(aPattern, sym);
完整示例:http://ideone.com/R7uoW0 http://ideone.com/R7uoW0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)