Java每周的日期,每个区域设置包含2个字母

时间:2016-10-27 01:05:05

标签: java localization locale

有什么方法可以让我每周都能得到2个字母的日子吗?

Ex:Su,Mo,Tu,We ....

我尝试了Java DateFormatSymbols,它提供了3个字母的短名称。

   DateFormatSymbols symbols = new DateFormatSymbols(this.locale);
   symbols.getShortWeekdays();

我也尝试使用Calender类,如下所示;

    Calendar cal = Calendar.getInstance();
    DateFormat dayFormat = new SimpleDateFormat("EE", this.locale);
    for (int i = 0; i < 7; i++) {
        cal.set(Calendar.DAY_OF_WEEK, i);
        System.out.println(dayFormat.format(cal.getTime()));
    }

但它总是给3个字母的日子。我无法使用子字符串,因为它取决于语言环境。

2 个答案:

答案 0 :(得分:0)

看起来像DateFormatSymbols has a setShortWeekdays function,它可以让你自己设置(大概)你喜欢的任何东西。虽然不理想甚至不自动。

答案 1 :(得分:0)

最好的方法是使用3个字母的字符串并通过switch case或if-else-if语句将其传递给所需的2个字母的字符串,如此...

 public static String getTwoLetters(){
    String threeLetterDay = null;
    switch (threeLetterDay) {
        case "Sun":
            return "Su";
        case "Mon":
            return "Mo";
        case "Tue":
            return "Tu";
        case "Wed":
            return "We";
        case "Thu":
            return "Th";
        case "Fri":
            return "Fr";
        default:
            //if none of the above then it must be this one Sat
            return "Sa";
    }
}