Download the JDK
Search the Tutorials
Hide the TOC
Trail: Internationalization
Lesson: Formatting
Section: Dates and Times
Formatting
Numbers and Currencies
Using Predefined Formats
Customizing Formats
Dates and Times
Using Predefined Formats
Customizing Formats
Changing Date Format Symbols
Messages
Dealing with Compound Messages
Handling Plurals
Home Page > Internationalization > 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

Previous page: Customizing Formats
Next page: Messages