如何更改指定语言环境的日期格式符号?

package org.nhooo.example.text;

import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class ChangeDateFormatSymbols {
    public static void main(String[] args) {
        Locale id = new Locale("in", "ID");
        String pattern = "EEEE, dd MMM yyyy";
        Date today = new Date();

        // 获取由给定模式指定的格式化日期
        // 印度尼西亚语言环境对默认日期格式没有更改
        // 在这里应用。
        SimpleDateFormat sdf = new SimpleDateFormat(pattern, id);
        String before = sdf.format(today);
        System.out.println("Before format change: " + before);

        // 为印度尼西亚语言环境创建一个DateFormatSymbols对象。
        DateFormatSymbols dfs = new DateFormatSymbols(id);

        // 获取工作日默认格式的String数组。
        String[] days = dfs.getWeekdays();
        String newDays[] = new String[days.length];
        for (int i = 0; i < days.length; i++) {
            // 对于每一天,将toUpperCase()方法应用于
            // 大写。
            newDays[i] = days[i].toUpperCase();
        }

        // 设置工作日的字符串数组。
        dfs.setWeekdays(newDays);

        // 获取短个月的默认格式的String数组。
        String[] shortMonths = dfs.getShortMonths();
        String months[] = new String[shortMonths.length];
        for (int j = 0; j < shortMonths.length; j++) {
            // 对于每个短月,请应用toUpperCase()方法
            // 大写。
            months[j] = shortMonths[j].toUpperCase();
        }

        // 设置短月份的String数组。
        dfs.setShortMonths(months);

        // 通过给定的模式创建SimpleDateFormat对象,然后 
        // 符号,然后将日期对象格式化为String。
        sdf = new SimpleDateFormat(pattern, dfs);
        String after = sdf.format(today);
        System.out.println("After change format : " + after);
    }
}

这是我们程序的输出:

Before format change: Kamis, 12 Apr 2018
After change format : KAMIS, 12 APR 2018