SimpleDateFormat不返回大写格式的日期

时间:2015-06-26 18:13:14

标签: android date-format simpledateformat

我正在尝试使用课程SimpleFormattedDate在我的Android应用中获取自定义格式化日期,但我无法找到返回大写字母的模式。

这些是我的代码行:

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();

但这是我得到的回报:

ven, giu 26, '15

但我想取而代之的是:

Ven, 26 Giu 2015

2 个答案:

答案 0 :(得分:3)

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

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

意大利语的capitalazion规则可能有所不同,如果您仍想更改它,一个选项是使用来自apache commons的wordutils,将de依赖项添加到您的gradle.build

  

编译' org.apache.commons:commons-lang3:3.4'

然后就这样做:

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

答案 1 :(得分:1)

您可以通过设置它使用的 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);