Most visited

Recently visited

Added in API level 24

DateFormatSymbols

public class DateFormatSymbols
extends Object implements Serializable, Cloneable

java.lang.Object
   ↳ android.icu.text.DateFormatSymbols


[icu enhancement] ICU's replacement for DateFormatSymbols. Methods, fields, and other functionality specific to ICU are labeled '[icu]'.

DateFormatSymbols is a public class for encapsulating localizable date-time formatting data, such as the names of the months, the names of the days of the week, and the time zone data. DateFormat and SimpleDateFormat both use DateFormatSymbols to encapsulate this information.

Typically you shouldn't use DateFormatSymbols directly. Rather, you are encouraged to create a date-time formatter with the DateFormat class's factory methods: getTimeInstance, getDateInstance, or getDateTimeInstance. These methods automatically create a DateFormatSymbols for the formatter so that you don't have to. After the formatter is created, you may modify its format pattern using the setPattern method. For more information about creating formatters using DateFormat's factory methods, see DateFormat.

If you decide to create a date-time formatter with a specific format pattern for a specific locale, you can do so with:

 new SimpleDateFormat(aPattern, new DateFormatSymbols(aLocale)).
 

DateFormatSymbols objects are clonable. When you obtain a DateFormatSymbols object, feel free to modify the date-time formatting data. For instance, you can replace the localized date-time format pattern characters with the ones that you feel easy to remember. Or you can change the representative cities to your favorite ones.

New DateFormatSymbols subclasses may be added to support SimpleDateFormat for date-time formatting for additional locales.

See also:

Summary

Constants

int ABBREVIATED

[icu] Constant for width.

int FORMAT

[icu] Constant for context.

int NARROW

[icu] Constant for width.

int SHORT

[icu] Constant for width; only supported for weekdays.

int STANDALONE

[icu] Constant for context.

int WIDE

[icu] Constant for width.

Public constructors

DateFormatSymbols()

Constructs a DateFormatSymbols object by loading format data from resources for the default FORMAT locale.

DateFormatSymbols(Locale locale)

Constructs a DateFormatSymbols object by loading format data from resources for the given locale.

DateFormatSymbols(ULocale locale)

[icu] Constructs a DateFormatSymbols object by loading format data from resources for the given ulocale.

DateFormatSymbols(Calendar cal, Locale locale)

Returns the DateFormatSymbols object that should be used to format a calendar system's dates in the given locale.

DateFormatSymbols(Calendar cal, ULocale locale)

Returns the DateFormatSymbols object that should be used to format a calendar system's dates in the given locale.

DateFormatSymbols(Class<? extends Calendar> calendarClass, Locale locale)

Variant of DateFormatSymbols(Calendar, Locale) that takes the Calendar class instead of a Calendar instance.

DateFormatSymbols(Class<? extends Calendar> calendarClass, ULocale locale)

Variant of DateFormatSymbols(Calendar, ULocale) that takes the Calendar class instead of a Calendar instance.

DateFormatSymbols(ResourceBundle bundle, Locale locale)

Fetches a custom calendar's DateFormatSymbols out of the given resource bundle.

DateFormatSymbols(ResourceBundle bundle, ULocale locale)

Fetches a custom calendar's DateFormatSymbols out of the given resource bundle.

Public methods

Object clone()

Overrides clone.

boolean equals(Object obj)

Overrides equals.

String[] getAmPmStrings()

Returns am/pm strings.

static Locale[] getAvailableLocales()

Returns an array of all locales for which the getInstance methods of this class can return localized instances.

String[] getEraNames()

[icu] Returns era name strings.

String[] getEras()

Returns era strings.

static DateFormatSymbols getInstance()

Returns a DateFormatSymbols instance for the default locale.

static DateFormatSymbols getInstance(Locale locale)

Returns a DateFormatSymbols instance for the given locale.

static DateFormatSymbols getInstance(ULocale locale)

[icu] Returns a DateFormatSymbols instance for the given locale.

String getLocalPatternChars()

Returns localized date-time pattern characters.

String[] getMonths(int context, int width)

Returns month strings.

String[] getMonths()

Returns month strings.

String[] getQuarters(int context, int width)

[icu] Returns quarter strings.

String[] getShortMonths()

Returns short month strings.

String[] getShortWeekdays()

Returns abbreviated weekday strings; for example: "Sun", "Mon", etc.

String[] getWeekdays(int context, int width)

Returns weekday strings.

String[] getWeekdays()

Returns wide weekday strings.

String[] getYearNames(int context, int width)

Returns cyclic year name strings if the calendar has them, for example: "jia-zi", "yi-chou", etc.

String[] getZodiacNames(int context, int width)

Returns calendar zodiac name strings if the calendar has them, for example: "Rat", "Ox", "Tiger", etc.

String[][] getZoneStrings()

Returns time zone strings.

int hashCode()

Override hashCode.

void setAmPmStrings(String[] newAmpms)

Sets am/pm strings.

void setEraNames(String[] newEraNames)

[icu] Sets era name strings.

void setEras(String[] newEras)

Sets era strings.

void setLocalPatternChars(String newLocalPatternChars)

Sets localized date-time pattern characters.

void setMonths(String[] newMonths)

Sets month strings.

void setMonths(String[] newMonths, int context, int width)

Sets month strings.

void setQuarters(String[] newQuarters, int context, int width)

[icu] Sets quarter strings.

void setShortMonths(String[] newShortMonths)

Sets short month strings.

void setShortWeekdays(String[] newAbbrevWeekdays)

Sets abbreviated weekday strings; for example: "Sun", "Mon", etc.

void setWeekdays(String[] newWeekdays)

Sets wide weekday strings.

void setWeekdays(String[] newWeekdays, int context, int width)

Sets weekday strings.

void setYearNames(String[] yearNames, int context, int width)

Sets cyclic year name strings, for example: "jia-zi", "yi-chou", etc.

void setZodiacNames(String[] zodiacNames, int context, int width)

Sets calendar zodiac name strings, for example: "Rat", "Ox", "Tiger", etc.

void setZoneStrings(String[][] newZoneStrings)

Sets time zone strings.

Protected methods

void initializeData(ULocale desiredLocale, String type)

Initializes format symbols for the locale and calendar type

Inherited methods

From class java.lang.Object

Constants

ABBREVIATED

Added in API level 24
int ABBREVIATED

[icu] Constant for width.

Constant Value: 0 (0x00000000)

FORMAT

Added in API level 24
int FORMAT

[icu] Constant for context.

Constant Value: 0 (0x00000000)

NARROW

Added in API level 24
int NARROW

[icu] Constant for width.

Constant Value: 2 (0x00000002)

SHORT

Added in API level 24
int SHORT

[icu] Constant for width; only supported for weekdays.

Constant Value: 3 (0x00000003)

STANDALONE

Added in API level 24
int STANDALONE

[icu] Constant for context.

Constant Value: 1 (0x00000001)

WIDE

Added in API level 24
int WIDE

[icu] Constant for width.

Constant Value: 1 (0x00000001)

Public constructors

DateFormatSymbols

Added in API level 24
DateFormatSymbols ()

Constructs a DateFormatSymbols object by loading format data from resources for the default FORMAT locale.

Throws
MissingResourceException if the resources for the default locale cannot be found or cannot be loaded.

See also:

DateFormatSymbols

Added in API level 24
DateFormatSymbols (Locale locale)

Constructs a DateFormatSymbols object by loading format data from resources for the given locale.

Parameters
locale Locale
Throws
MissingResourceException if the resources for the specified locale cannot be found or cannot be loaded.

DateFormatSymbols

Added in API level 24
DateFormatSymbols (ULocale locale)

[icu] Constructs a DateFormatSymbols object by loading format data from resources for the given ulocale.

Parameters
locale ULocale
Throws
MissingResourceException if the resources for the specified locale cannot be found or cannot be loaded.

DateFormatSymbols

Added in API level 24
DateFormatSymbols (Calendar cal, 
                Locale locale)

Returns the DateFormatSymbols object that should be used to format a calendar system's dates in the given locale.

Subclassing:
When creating a new Calendar subclass, you must create the ResourceBundle containing its DateFormatSymbols in a specific place. The resource bundle name is based on the calendar's fully-specified class name, with ".resources" inserted at the end of the package name (just before the class name) and "Symbols" appended to the end. For example, the bundle corresponding to "android.icu.util.HebrewCalendar" is "android.icu.impl.data.HebrewCalendarSymbols".

Within the ResourceBundle, this method searches for five keys:

  • DayNames - An array of strings corresponding to each possible value of the DAY_OF_WEEK field. Even though DAY_OF_WEEK starts with SUNDAY = 1, This array is 0-based; the name for Sunday goes in the first position, at index 0. If this key is not found in the bundle, the day names are inherited from the default DateFormatSymbols for the requested locale.
  • DayAbbreviations - An array of abbreviated day names corresponding to the values in the "DayNames" array. If this key is not found in the resource bundle, the "DayNames" values are used instead. If neither key is found, the day abbreviations are inherited from the default DateFormatSymbols for the locale.
  • MonthNames - An array of strings corresponding to each possible value of the MONTH field. If this key is not found in the bundle, the month names are inherited from the default DateFormatSymbols for the requested locale.
  • MonthAbbreviations - An array of abbreviated day names corresponding to the values in the "MonthNames" array. If this key is not found in the resource bundle, the "MonthNames" values are used instead. If neither key is found, the day abbreviations are inherited from the default DateFormatSymbols for the locale.
  • Eras - An array of strings corresponding to each possible value of the ERA field. If this key is not found in the bundle, the era names are inherited from the default DateFormatSymbols for the requested locale.

Parameters
cal Calendar: The calendar system whose date format symbols are desired.
locale Locale: The locale whose symbols are desired.

See also:

DateFormatSymbols

Added in API level 24
DateFormatSymbols (Calendar cal, 
                ULocale locale)

Returns the DateFormatSymbols object that should be used to format a calendar system's dates in the given locale.

Subclassing:
When creating a new Calendar subclass, you must create the ResourceBundle containing its DateFormatSymbols in a specific place. The resource bundle name is based on the calendar's fully-specified class name, with ".resources" inserted at the end of the package name (just before the class name) and "Symbols" appended to the end. For example, the bundle corresponding to "android.icu.util.HebrewCalendar" is "android.icu.impl.data.HebrewCalendarSymbols".

Within the ResourceBundle, this method searches for five keys:

  • DayNames - An array of strings corresponding to each possible value of the DAY_OF_WEEK field. Even though DAY_OF_WEEK starts with SUNDAY = 1, This array is 0-based; the name for Sunday goes in the first position, at index 0. If this key is not found in the bundle, the day names are inherited from the default DateFormatSymbols for the requested locale.
  • DayAbbreviations - An array of abbreviated day names corresponding to the values in the "DayNames" array. If this key is not found in the resource bundle, the "DayNames" values are used instead. If neither key is found, the day abbreviations are inherited from the default DateFormatSymbols for the locale.
  • MonthNames - An array of strings corresponding to each possible value of the MONTH field. If this key is not found in the bundle, the month names are inherited from the default DateFormatSymbols for the requested locale.
  • MonthAbbreviations - An array of abbreviated day names corresponding to the values in the "MonthNames" array. If this key is not found in the resource bundle, the "MonthNames" values are used instead. If neither key is found, the day abbreviations are inherited from the default DateFormatSymbols for the locale.
  • Eras - An array of strings corresponding to each possible value of the ERA field. If this key is not found in the bundle, the era names are inherited from the default DateFormatSymbols for the requested locale.

Parameters
cal Calendar: The calendar system whose date format symbols are desired.
locale ULocale: The ulocale whose symbols are desired.

See also:

DateFormatSymbols

Added in API level 24
DateFormatSymbols (Class<? extends Calendar> calendarClass, 
                Locale locale)

Variant of DateFormatSymbols(Calendar, Locale) that takes the Calendar class instead of a Calendar instance.

Parameters
calendarClass Class
locale Locale

See also:

DateFormatSymbols

Added in API level 24
DateFormatSymbols (Class<? extends Calendar> calendarClass, 
                ULocale locale)

Variant of DateFormatSymbols(Calendar, ULocale) that takes the Calendar class instead of a Calendar instance.

Parameters
calendarClass Class
locale ULocale

See also:

DateFormatSymbols

Added in API level 24
DateFormatSymbols (ResourceBundle bundle, 
                Locale locale)

Fetches a custom calendar's DateFormatSymbols out of the given resource bundle. Symbols that are not overridden are inherited from the default DateFormatSymbols for the locale.

Parameters
bundle ResourceBundle
locale Locale

See also:

DateFormatSymbols

Added in API level 24
DateFormatSymbols (ResourceBundle bundle, 
                ULocale locale)

Fetches a custom calendar's DateFormatSymbols out of the given resource bundle. Symbols that are not overridden are inherited from the default DateFormatSymbols for the locale.

Parameters
bundle ResourceBundle
locale ULocale

See also:

Public methods

clone

Added in API level 24
Object clone ()

Overrides clone.

Returns
Object a clone of this instance.

equals

Added in API level 24
boolean equals (Object obj)

Overrides equals.

Parameters
obj Object: the reference object with which to compare.
Returns
boolean true if this object is the same as the obj argument; false otherwise.

getAmPmStrings

Added in API level 24
String[] getAmPmStrings ()

Returns am/pm strings. For example: "AM" and "PM".

Returns
String[] the weekday strings.

getAvailableLocales

Added in API level 24
Locale[] getAvailableLocales ()

Returns an array of all locales for which the getInstance methods of this class can return localized instances. [icu] Note: Unlike java.text.DateFormatSymbols#getAvailableLocales, this method simply returns the array of Locales available in this class. ICU does not support DateFormatSymbolsProvider introduced in Java 6 or its equivalent implementation for now.

Returns
Locale[] An array of Locales for which localized DateFormatSymbols instances are available.

getEraNames

Added in API level 24
String[] getEraNames ()

[icu] Returns era name strings. For example: "Anno Domini" and "Before Christ".

Returns
String[] the era strings.

getEras

Added in API level 24
String[] getEras ()

Returns era strings. For example: "AD" and "BC".

Returns
String[] the era strings.

getInstance

Added in API level 24
DateFormatSymbols getInstance ()

Returns a DateFormatSymbols instance for the default locale. [icu] Note: Unlike java.text.DateFormatSymbols#getInstance, this method simply returns new android.icu.text.DateFormatSymbols(). ICU does not support DateFormatSymbolsProvider introduced in Java 6 or its equivalent implementation for now.

Returns
DateFormatSymbols A DateFormatSymbols instance.

getInstance

Added in API level 24
DateFormatSymbols getInstance (Locale locale)

Returns a DateFormatSymbols instance for the given locale. [icu] Note: Unlike java.text.DateFormatSymbols#getInstance, this method simply returns new android.icu.text.DateFormatSymbols(locale). ICU does not support DateFormatSymbolsProvider introduced in Java 6 or its equivalent implementation for now.

Parameters
locale Locale: the locale.
Returns
DateFormatSymbols A DateFormatSymbols instance.

getInstance

Added in API level 24
DateFormatSymbols getInstance (ULocale locale)

[icu] Returns a DateFormatSymbols instance for the given locale. [icu] Note: Unlike java.text.DateFormatSymbols#getInstance, this method simply returns new android.icu.text.DateFormatSymbols(locale). ICU does not support DateFormatSymbolsProvider introduced in Java 6 or its equivalent implementation for now.

Parameters
locale ULocale: the locale.
Returns
DateFormatSymbols A DateFormatSymbols instance.

getLocalPatternChars

Added in API level 24
String getLocalPatternChars ()

Returns localized date-time pattern characters. For example: 'u', 't', etc.

Note: ICU no longer provides localized date-time pattern characters for a locale starting ICU 3.8. This method returns the non-localized date-time pattern characters unless user defined localized data is set by setLocalPatternChars.

Returns
String the localized date-time pattern characters.

getMonths

Added in API level 24
String[] getMonths (int context, 
                int width)

Returns month strings. For example: "January", "February", etc.

Parameters
context int: The month context, FORMAT or STANDALONE.
width int: The width or the returned month string, either WIDE, ABBREVIATED, or NARROW.
Returns
String[] the month strings.

getMonths

Added in API level 24
String[] getMonths ()

Returns month strings. For example: "January", "February", etc.

Returns
String[] the month strings.

getQuarters

Added in API level 24
String[] getQuarters (int context, 
                int width)

[icu] Returns quarter strings. For example: "1st Quarter", "2nd Quarter", etc.

Parameters
context int: The quarter context, FORMAT or STANDALONE.
width int: The width or the returned quarter string, either WIDE or ABBREVIATED. There are no NARROW quarters.
Returns
String[] the quarter strings.

getShortMonths

Added in API level 24
String[] getShortMonths ()

Returns short month strings. For example: "Jan", "Feb", etc.

Returns
String[] the short month strings.

getShortWeekdays

Added in API level 24
String[] getShortWeekdays ()

Returns abbreviated weekday strings; for example: "Sun", "Mon", etc. (Note: the method name is misleading; it does not get the CLDR-style "short" weekday strings, e.g. "Su", "Mo", etc.)

Returns
String[] the abbreviated weekday strings. Use Calendar.SUNDAY, Calendar.MONDAY, etc. to index the result array.

getWeekdays

Added in API level 24
String[] getWeekdays (int context, 
                int width)

Returns weekday strings. For example: "Sunday", "Monday", etc.

Parameters
context int: Formatting context, either FORMAT or STANDALONE.
width int: Width of strings to be returned, either WIDE, ABBREVIATED, SHORT, or NARROW
Returns
String[] the weekday strings. Use Calendar.SUNDAY, Calendar.MONDAY, etc. to index the result array.

getWeekdays

Added in API level 24
String[] getWeekdays ()

Returns wide weekday strings. For example: "Sunday", "Monday", etc.

Returns
String[] the weekday strings. Use Calendar.SUNDAY, Calendar.MONDAY, etc. to index the result array.

getYearNames

Added in API level 24
String[] getYearNames (int context, 
                int width)

Returns cyclic year name strings if the calendar has them, for example: "jia-zi", "yi-chou", etc.

Parameters
context int: The usage context: FORMAT, STANDALONE.
width int: The requested name width: WIDE, ABBREVIATED, SHORT, NARROW.
Returns
String[] The year name strings, or null if they are not available for this calendar.

getZodiacNames

Added in API level 24
String[] getZodiacNames (int context, 
                int width)

Returns calendar zodiac name strings if the calendar has them, for example: "Rat", "Ox", "Tiger", etc.

Parameters
context int: The usage context: FORMAT, STANDALONE.
width int: The requested name width: WIDE, ABBREVIATED, SHORT, NARROW.
Returns
String[] The zodiac name strings, or null if they are not available for this calendar.

getZoneStrings

Added in API level 24
String[][] getZoneStrings ()

Returns time zone strings.

The array returned by this API is a two dimensional String array and each row contains at least following strings:

  • ZoneStrings[n][0] - System time zone ID
  • ZoneStrings[n][1] - Long standard time display name
  • ZoneStrings[n][2] - Short standard time display name
  • ZoneStrings[n][3] - Long daylight saving time display name
  • ZoneStrings[n][4] - Short daylight saving time display name
When a localized display name is not available, the corresponding array element will be null.

Note: ICU implements the time zone display name formatting algorithm specified by UTS#35 Unicode Locale Data Markup Language(LDML). The algorithm supports historic display name changes and various different types of names not available in getZoneStrings(). For accessing the full set of time zone string data used by ICU implementation, you should use TimeZoneNames APIs instead.

Returns
String[][] the time zone strings.

hashCode

Added in API level 24
int hashCode ()

Override hashCode. Generates a hash code for the DateFormatSymbols object.

Returns
int a hash code value for this object.

setAmPmStrings

Added in API level 24
void setAmPmStrings (String[] newAmpms)

Sets am/pm strings. For example: "AM" and "PM".

Parameters
newAmpms String: the new ampm strings.

setEraNames

Added in API level 24
void setEraNames (String[] newEraNames)

[icu] Sets era name strings. For example: "Anno Domini" and "Before Christ".

Parameters
newEraNames String: the new era strings.

setEras

Added in API level 24
void setEras (String[] newEras)

Sets era strings. For example: "AD" and "BC".

Parameters
newEras String: the new era strings.

setLocalPatternChars

Added in API level 24
void setLocalPatternChars (String newLocalPatternChars)

Sets localized date-time pattern characters. For example: 'u', 't', etc.

Parameters
newLocalPatternChars String: the new localized date-time pattern characters.

setMonths

Added in API level 24
void setMonths (String[] newMonths)

Sets month strings. For example: "January", "February", etc.

Parameters
newMonths String: the new month strings.

setMonths

Added in API level 24
void setMonths (String[] newMonths, 
                int context, 
                int width)

Sets month strings. For example: "January", "February", etc.

Parameters
newMonths String: the new month strings.
context int: The formatting context, FORMAT or STANDALONE.
width int: The width of the month string, either WIDE, ABBREVIATED, or NARROW.

setQuarters

Added in API level 24
void setQuarters (String[] newQuarters, 
                int context, 
                int width)

[icu] Sets quarter strings. For example: "1st Quarter", "2nd Quarter", etc.

Parameters
newQuarters String: the new quarter strings.
context int: The formatting context, FORMAT or STANDALONE.
width int: The width of the quarter string, either WIDE or ABBREVIATED. There are no NARROW quarters.

setShortMonths

Added in API level 24
void setShortMonths (String[] newShortMonths)

Sets short month strings. For example: "Jan", "Feb", etc.

Parameters
newShortMonths String: the new short month strings.

setShortWeekdays

Added in API level 24
void setShortWeekdays (String[] newAbbrevWeekdays)

Sets abbreviated weekday strings; for example: "Sun", "Mon", etc. (Note: the method name is misleading; it does not set the CLDR-style "short" weekday strings, e.g. "Su", "Mo", etc.)

Parameters
newAbbrevWeekdays String: the new abbreviated weekday strings. The array should be indexed by Calendar.SUNDAY, Calendar.MONDAY, etc.

setWeekdays

Added in API level 24
void setWeekdays (String[] newWeekdays)

Sets wide weekday strings. For example: "Sunday", "Monday", etc.

Parameters
newWeekdays String: the new weekday strings. The array should be indexed by Calendar.SUNDAY, Calendar.MONDAY, etc.

setWeekdays

Added in API level 24
void setWeekdays (String[] newWeekdays, 
                int context, 
                int width)

Sets weekday strings. For example: "Sunday", "Monday", etc.

Parameters
newWeekdays String: The new weekday strings.
context int: The formatting context, FORMAT or STANDALONE.
width int: The width of the strings, either WIDE, ABBREVIATED, SHORT, or NARROW.

setYearNames

Added in API level 24
void setYearNames (String[] yearNames, 
                int context, 
                int width)

Sets cyclic year name strings, for example: "jia-zi", "yi-chou", etc.

Parameters
yearNames String: The new cyclic year name strings.
context int: The usage context: FORMAT, STANDALONE (currently only FORMAT is supported).
width int: The name width: WIDE, ABBREVIATED, NARROW (currently only ABBREVIATED is supported).

setZodiacNames

Added in API level 24
void setZodiacNames (String[] zodiacNames, 
                int context, 
                int width)

Sets calendar zodiac name strings, for example: "Rat", "Ox", "Tiger", etc.

Parameters
zodiacNames String: The new zodiac name strings.
context int: The usage context: FORMAT, STANDALONE (currently only FORMAT is supported).
width int: The name width: WIDE, ABBREVIATED, NARROW (currently only ABBREVIATED is supported).

setZoneStrings

Added in API level 24
void setZoneStrings (String[][] newZoneStrings)

Sets time zone strings.

Note: SimpleDateFormat no longer uses the zone strings stored in a DateFormatSymbols. Therefore, the time zone strings set by this method have no effects in an instance of SimpleDateFormat for formatting time zones. If you want to customize time zone display names formatted by SimpleDateFormat, you should customize TimeZoneFormat and set the instance by setTimeZoneFormat(TimeZoneFormat) instead.

Parameters
newZoneStrings String: the new time zone strings.

Protected methods

initializeData

Added in API level 24
void initializeData (ULocale desiredLocale, 
                String type)

Initializes format symbols for the locale and calendar type

Parameters
desiredLocale ULocale: The locale whose symbols are desired.
type String: The calendar type whose date format symbols are desired.

Hooray!