The Java TM Tutorial

| Start of Tutorial > Start of Trail > Start of Lesson | Search

Trail: Internationalization
Lesson: Formatting

## Changing Date Format Symbols

> The `format` method of the `SimpleDateFormat` class returns a `String` composed of digits and symbols. For example, in the `String` "Friday, April 10, 1998," the symbols are "Friday" and "April." If the symbols encapsulated in `SimpleDateFormat` don't meet your needs, you can change them with the `DateFormatSymbols`. You can change symbols that represent names for months, days of the week, and time zones, among others. The following table lists the `DateFormatSymbols` methods that allow you to modify the symbols:

### `DateFormatSymbol` Methods

Setter Method Example of a Symbol the Method Modifies
`setAmPmStrings` PM
`setEras` AD
`setMonths` December
`setShortMonths` Dec
`setShortWeekdays` Tue
`setWeekdays` Tuesday
`setZoneStrings` PST

The following example invokes `setShortWeekdays` to change the short names of the days of the week from lowercase to uppercase characters. The full source code for this example is in `DateFormatSymbolsDemo`. The first element in the array argument of `setShortWeekdays` is a null `String`. Therefore the array is one-based rather than zero-based. The `SimpleDateFormat` constructor accepts the modified `DateFormatSymbols` object as an argument. Here is the source code:

>     Date today;
>     String result;
>     SimpleDateFormat formatter;
>     DateFormatSymbols symbols;
>     String[] defaultDays;
>     String[] modifiedDays;

>     symbols = new DateFormatSymbols(new Locale("en","US"));
>     defaultDays = symbols.getShortWeekdays();

>     for (int i = 0; i < defaultDays.length; i++) {
>         System.out.print(defaultDays[i] + " ");
>     }
>     System.out.println();

>     String[] capitalDays = {
>     			"", "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
>     symbols.setShortWeekdays(capitalDays);

>     modifiedDays = symbols.getShortWeekdays();
>     for (int i = 0; i < modifiedDays.length; i++) {
>         System.out.print(modifiedDays[i] + " ");
>     }
>     System.out.println();
>     System.out.println();

>     formatter = new SimpleDateFormat("E", symbols);
>     today = new Date();
>     result = formatter.format(today);
>     System.out.println(result);

The preceding code generates this output:

>        Sun	 Mon	 Tue	 Wed	 Thu	 Fri	 Sat
>        SUN	 MON	 TUE	 WED	 THU	 FRI	 SAT
>     WED

| Start of Tutorial > Start of Trail > Start of Lesson | Search