SimpleDateFormat 不返回大写格式的日期

SimpleDateFormat not returning uppercase formatted date

我正在尝试使用 class SimpleFormattedDate 在我的 Android 应用程序中获取自定义格式的日期,但我找不到模式 returning 大写字母。

这些是我的代码行:

Date today = new Date();

Locale loc = new Locale("it","IT");//Locale.ITALIAN
SimpleDateFormat formatter = new SimpleDateFormat("EEE, MMM d, ''yy", loc);
String output = formatter.format(today);
Toast.makeText(getActivity(), output,Toast.LENGTH_LONG).show();

但这就是我在 return:

中得到的
ven, giu 26, '15

但我想获得这个:

Ven, 26 Giu 2015

您可以通过设置它使用的 DateFormatSymbols 来更改 SimpleDateFormat 输出的字符串。官方教程包含this

的例子

教程中的示例,适用于短工作日

String[] capitalDays = {
    "", "SUN", "MON",
    "TUE", "WED", "THU",
    "FRI", "SAT"
};
symbols = new DateFormatSymbols( new Locale("en", "US"));
symbols.setShortWeekdays(capitalDays);

formatter = new SimpleDateFormat("E", symbols);
result = formatter.format(new Date());
System.out.println("Today's day of the week: " + result);

首先你的格式化程序应该是:

 SimpleDateFormat formatter = new SimpleDateFormat("E , d MMM yyyy",loc);

意大利语的大写规则可能不同,如果您仍想更改它,一种选择是使用 apache commons 中的 wordutils,将依赖项添加到您的 gradle.build

compile 'org.apache.commons:commons-lang3:3.4'

然后就这样做:

output=WordUtils.capitalize(output);
Toast.makeText(this, output,Toast.LENGTH_LONG).show();