The Java TM Tutorial

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

Trail: Internationalization
Lesson: Formatting

## Using Predefined Formats

> The `DateFormat` class allows you to format dates and times with predefined styles in a locale-sensitive manner. The sections that follow demonstrate how to use the `DateFormat` class with a program called `DateFormatDemo.java`.

### Dates

> Formatting dates with the `DateFormat` class is a two-step process. First, you create a formatter with the `getDateInstance` method. Second, you invoke the `format` method, which returns a `String` containing the formatted date. The following example formats today's date by calling these two methods:

> >     Date today;
> >     String dateOut;
> >     DateFormat dateFormatter;

> >     dateFormatter = DateFormat.getDateInstance(DateFormat.DEFAULT,
> >     					   currentLocale);
> >     today = new Date();
> >     dateOut = dateFormatter.format(today);

> >     System.out.println(dateOut + " " + currentLocale.toString());

> The output generated by this code follows. Notice that the formats of the dates vary with `Locale`. Since `DateFormat` is locale-sensitive, it takes care of the formatting details for each `Locale`.

> >     9 avr 98	 fr_FR
> >     9.4.1998	 de_DE
> >     09-Apr-98	 en_US

> The preceding code example specified the `DEFAULT` formatting style. The `DEFAULT` style is just one of the predefined formatting styles that the `DateFormat` class provides, as follows:

> - DEFAULT
> - SHORT
> - MEDIUM
> - LONG
> - FULL

> The following table shows how dates are formatted for each style with the U.S. and French locales:

> ### Sample Date Formats

> Style | U.S. Locale | French Locale
> --- | --- | ---
> `DEFAULT` | 10-Apr-98 | 10 avr 98
> `SHORT` | 4/10/98 | 10/04/98
> `MEDIUM` | 10-Apr-98 | 10 avr 98
> `LONG` | April 10, 1998 | 10 avril 1998
> `FULL` | Friday, April 10, 1998 | vendredi, 10 avril 1998

### Times

> `Date` objects represent both dates and times. Formatting times with the `DateFormat` class is similar to formatting dates, except that you create the formatter with the `getTimeInstance` method, as follows:

> >     DateFormat timeFormatter =
> >         DateFormat.getTimeInstance(DateFormat.DEFAULT,
> >                                    currentLocale);

> The table that follows shows the various predefined format styles for the U.S. and German locales:

> ### Sample Time Formats

> Style | U.S. Locale | German Locale
> --- | --- | ---
> `DEFAULT` | 3:58:45 PM | 15:58:45
> `SHORT` | 3:58 PM | 15:58
> `MEDIUM` | 3:58:45 PM | 15:58:45
> `LONG` | 3:58:45 PM PDT | 15:58:45 GMT+02:00
> `FULL` | 3:58:45 oclock PM PDT | 15.58 Uhr GMT+02:00

### Both Dates and Times

> To display a date and time in the same `String`, create the formatter with the `getDateTimeInstance` method. The first parameter is the date style, and the second is the time style. The third parameter is the `Locale` . Here's a quick example:

> >     DateFormat formatter =
> >         DateFormat.getDateTimeInstance(DateFormat.LONG,
> >                                        DateFormat.LONG,
> >                                        currentLocale);

> The following table shows the date and time formatting styles for the U.S. and French locales:

> ### Sample Date and Time Formats

> Style | U.S. Locale | French Locale
> --- | --- | ---
> `DEFAULT` | 25-Jun-98 1:32:19 PM | 25 jun 98 22:32:20
> `SHORT` | 6/25/98 1:32 PM | 25/06/98 22:32
> `MEDIUM` | 25-Jun-98 1:32:19 PM | 25 jun 98 22:32:20
> `LONG` | June 25, 1998 1:32:19 PM PDT | 25 juin 1998 22:32:20 GMT+02:00
> `FULL` | Thursday, June 25, 1998 1:32:19 o'clock PM PDT | jeudi, 25 juin 1998 22 h 32 GMT+02:00

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