- Class DateFormat
- Synchronization
- Nested Class Summary
- Field Summary
- Constructor Summary
- Method Summary
- Methods declared in class java.text.Format
- Methods declared in class java.lang.Object
- Field Details
- calendar
- numberFormat
- ERA_FIELD
- YEAR_FIELD
- MONTH_FIELD
- DATE_FIELD
- HOUR_OF_DAY1_FIELD
- HOUR_OF_DAY0_FIELD
- MINUTE_FIELD
- SECOND_FIELD
- MILLISECOND_FIELD
- DAY_OF_WEEK_FIELD
- DAY_OF_YEAR_FIELD
- DAY_OF_WEEK_IN_MONTH_FIELD
- WEEK_OF_YEAR_FIELD
- WEEK_OF_MONTH_FIELD
- AM_PM_FIELD
- HOUR1_FIELD
- HOUR0_FIELD
- TIMEZONE_FIELD
- FULL
- LONG
- MEDIUM
- SHORT
- DEFAULT
- Constructor Details
- DateFormat
- Method Details
- format
- format
- format
- parse
- parse
- parseObject
- getTimeInstance
- getTimeInstance
- getTimeInstance
- getDateInstance
- getDateInstance
- getDateInstance
- getDateTimeInstance
- getDateTimeInstance
- getDateTimeInstance
- getInstance
- getAvailableLocales
- setCalendar
Class DateFormat
DateFormat is an abstract class for date/time formatting subclasses which formats and parses dates or time in a language-independent manner. The date/time formatting subclass, such as SimpleDateFormat , allows for formatting (i.e., date → text), parsing (text → date), and normalization. The date is represented as a Date object or as the milliseconds since January 1, 1970, 00:00:00 GMT.
DateFormat provides many class methods for obtaining default date/time formatters based on the default or a given locale and a number of formatting styles. The formatting styles include FULL , LONG , MEDIUM , and SHORT . More detail and examples of using these styles are provided in the method descriptions.
DateFormat helps you to format and parse dates for any locale. Your code can be completely independent of the locale conventions for months, days of the week, or even the calendar format: lunar vs. solar.
To format a date for the current Locale, use one of the static factory methods:
myString = DateFormat.getDateInstance().format(myDate);
If you are formatting multiple dates, it is more efficient to get the format and use it multiple times so that the system doesn’t have to fetch the information about the local language and country conventions multiple times.
DateFormat df = DateFormat.getDateInstance(); for (int i = 0; i
To format a date for a different Locale, specify it in the call to getDateInstance() .
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
If the specified locale contains «ca» (calendar), «rg» (region override), and/or «tz» (timezone) Unicode extensions, the calendar, the country and/or the time zone for formatting are overridden. If both «ca» and «rg» are specified, the calendar from the «ca» extension supersedes the implicit one from the «rg» extension.
You can use a DateFormat to parse also.
- SHORT is completely numeric, such as 12.13.52 or 3:30pm
- MEDIUM is longer, such as Jan 12, 1952
- LONG is longer, such as January 12, 1952 or 3:30:32pm
- FULL is pretty completely specified, such as Tuesday, April 12, 1952 AD or 3:30:42pm PST .
You can also set the time zone on the format if you wish. If you want even more control over the format or parsing, (or want to give your users more control), you can try casting the DateFormat you get from the factory methods to a SimpleDateFormat . This will work for the majority of countries; just remember to put it in a try block in case you encounter an unusual one.
- progressively parse through pieces of a string.
- align any particular field, or find out where it is for selection on the screen.
Synchronization
Date formats are not synchronized. It is recommended to create separate format instances for each thread. If multiple threads access a format concurrently, it must be synchronized externally.
- The format(Date, StringBuffer, FieldPosition) and parse(String, ParsePosition) methods may throw NullPointerException , if any of their parameter is null . The subclass may provide its own implementation and specification about NullPointerException .
- The setCalendar(Calendar) , setNumberFormat(NumberFormat) and setTimeZone(TimeZone) methods do not throw NullPointerException when their parameter is null , but any subsequent operations on the same instance may throw NullPointerException .
- The getCalendar() , getNumberFormat() and getTimeZone() methods may return null , if the respective values of this instance is set to null through the corresponding setter methods. For Example: getTimeZone() may return null , if the TimeZone value of this instance is set as setTimeZone(null) .
- Format
- NumberFormat
- SimpleDateFormat
- Calendar
- GregorianCalendar
- TimeZone
- DateTimeFormatter
- Serialized Form
Nested Class Summary
Defines constants that are used as attribute keys in the AttributedCharacterIterator returned from DateFormat.formatToCharacterIterator and as field identifiers in FieldPosition .
Field Summary
Constructor Summary
Method Summary
Returns an array of all locales for which the get*Instance methods of this class can return localized instances.
Gets the date/time formatter with the given date and time formatting styles for the default FORMAT locale.
Methods declared in class java.text.Format
Methods declared in class java.lang.Object
Field Details
calendar
The Calendar instance used for calculating the date-time fields and the instant of time. This field is used for both formatting and parsing. Subclasses should initialize this field to a Calendar appropriate for the Locale associated with this DateFormat .
numberFormat
The number formatter that DateFormat uses to format numbers in dates and times. Subclasses should initialize this to a number format appropriate for the locale associated with this DateFormat .
ERA_FIELD
YEAR_FIELD
MONTH_FIELD
DATE_FIELD
HOUR_OF_DAY1_FIELD
Useful constant for one-based HOUR_OF_DAY field alignment. Used in FieldPosition of date/time formatting. HOUR_OF_DAY1_FIELD is used for the one-based 24-hour clock. For example, 23:59 + 01:00 results in 24:59.
HOUR_OF_DAY0_FIELD
Useful constant for zero-based HOUR_OF_DAY field alignment. Used in FieldPosition of date/time formatting. HOUR_OF_DAY0_FIELD is used for the zero-based 24-hour clock. For example, 23:59 + 01:00 results in 00:59.
MINUTE_FIELD
SECOND_FIELD
MILLISECOND_FIELD
DAY_OF_WEEK_FIELD
DAY_OF_YEAR_FIELD
DAY_OF_WEEK_IN_MONTH_FIELD
Useful constant for DAY_OF_WEEK_IN_MONTH field alignment. Used in FieldPosition of date/time formatting.
WEEK_OF_YEAR_FIELD
WEEK_OF_MONTH_FIELD
AM_PM_FIELD
HOUR1_FIELD
Useful constant for one-based HOUR field alignment. Used in FieldPosition of date/time formatting. HOUR1_FIELD is used for the one-based 12-hour clock. For example, 11:30 PM + 1 hour results in 12:30 AM.
HOUR0_FIELD
Useful constant for zero-based HOUR field alignment. Used in FieldPosition of date/time formatting. HOUR0_FIELD is used for the zero-based 12-hour clock. For example, 11:30 PM + 1 hour results in 00:30 AM.
TIMEZONE_FIELD
FULL
LONG
MEDIUM
SHORT
DEFAULT
Constructor Details
DateFormat
Method Details
format
Formats the given Object into a date-time string. The formatted string is appended to the given StringBuffer .
format
public abstract StringBuffer format (Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)
format
parse
Parses text from the beginning of the given string to produce a date. The method may not use the entire text of the given string. See the parse(String, ParsePosition) method for more information on date parsing.
parse
Parse a date/time string according to the given parse position. For example, a time text «07/10/96 4:5 PM, PDT» will be parsed into a Date that is equivalent to Date(837039900000L) . By default, parsing is lenient: If the input is not in the form used by this object’s format method but can still be parsed as a date, then the parse succeeds. Clients may insist on strict adherence to the format by calling setLenient(false) . This parsing operation uses the calendar to produce a Date . As a result, the calendar ‘s date-time fields and the TimeZone value may have been overwritten, depending on subclass implementations. Any TimeZone value that has previously been set by a call to setTimeZone may need to be restored for further operations.
parseObject
Parses text from a string to produce a Date . The method attempts to parse text starting at the index given by pos . If parsing succeeds, then the index of pos is updated to the index after the last character used (parsing does not necessarily use all characters up to the end of the string), and the parsed date is returned. The updated pos can be used to indicate the starting point for the next call to this method. If an error occurs, then the index of pos is not changed, the error index of pos is set to the index of the character where the error occurred, and null is returned. See the parse(String, ParsePosition) method for more information on date parsing.
getTimeInstance
Gets the time formatter with the default formatting style for the default FORMAT locale. This is equivalent to calling getTimeInstance(DEFAULT, Locale.getDefault(Locale.Category.FORMAT)) .
getTimeInstance
Gets the time formatter with the given formatting style for the default FORMAT locale. This is equivalent to calling getTimeInstance(style, Locale.getDefault(Locale.Category.FORMAT)) .
getTimeInstance
getDateInstance
Gets the date formatter with the default formatting style for the default FORMAT locale. This is equivalent to calling getDateInstance(DEFAULT, Locale.getDefault(Locale.Category.FORMAT)) .
getDateInstance
Gets the date formatter with the given formatting style for the default FORMAT locale. This is equivalent to calling getDateInstance(style, Locale.getDefault(Locale.Category.FORMAT)) .
getDateInstance
getDateTimeInstance
Gets the date/time formatter with the default formatting style for the default FORMAT locale. This is equivalent to calling getDateTimeInstance(DEFAULT, DEFAULT, Locale.getDefault(Locale.Category.FORMAT)) .
getDateTimeInstance
Gets the date/time formatter with the given date and time formatting styles for the default FORMAT locale. This is equivalent to calling getDateTimeInstance(dateStyle, timeStyle, Locale.getDefault(Locale.Category.FORMAT)) .
getDateTimeInstance
getInstance
getAvailableLocales
Returns an array of all locales for which the get*Instance methods of this class can return localized instances. The returned array represents the union of locales supported by the Java runtime and by installed DateFormatProvider implementations. At a minimum, the returned array must contain a Locale instance equal to Locale.ROOT and a Locale instance equal to Locale.US .
setCalendar
Set the calendar to be used by this date format. Initially, the default calendar for the specified or default locale is used. Any TimeZone and leniency values that have previously been set are overwritten by newCalendar ‘s values.