- 所有已实现的接口:
-
Serializable,Cloneable
DateFormatSymbols是一个公共类,用于封装可本地化的日期时间格式化数据,例如月份名称、星期几的名称和时区数据。 SimpleDateFormat使用DateFormatSymbols来封装这些信息。
通常情况下,不应直接使用DateFormatSymbols。相反,建议使用DateFormat类的工厂方法创建日期时间格式化程序:getTimeInstance、getDateInstance或getDateTimeInstance。这些方法会自动为格式化程序创建一个DateFormatSymbols,因此您无需自行创建。创建格式化程序后,可以使用setPattern方法修改其格式模式。有关使用DateFormat的工厂方法创建格式化程序的更多信息,请参阅DateFormat。
如果决定为特定区域设置特定格式模式的日期时间格式化程序,可以使用以下方式:
new SimpleDateFormat(aPattern, DateFormatSymbols.getInstance(aLocale));
如果区域包含"rg"(区域覆盖)Unicode扩展,则符号将被覆盖为指定区域的符号。
DateFormatSymbols对象是可克隆的。获取DateFormatSymbols对象后,可以随意修改日期时间格式化数据。例如,可以用易于记忆的字符替换本地化的日期时间格式模式字符。或者可以将代表性城市更改为您喜欢的城市。
可以添加新的DateFormatSymbols子类以支持SimpleDateFormat用于其他区域的日期时间格式化。
- 自版本:
- 1.1
- 参见:
-
Constructor Summary
ConstructorsConstructorDescription通过从默认FORMAT区域的资源加载格式数据来构造一个DateFormatSymbols对象。DateFormatSymbols(Locale locale) 通过从给定区域的资源加载格式数据来构造一个DateFormatSymbols对象。 -
Method Summary
Modifier and TypeMethodDescriptionclone()覆盖Cloneableboolean覆盖equalsString[]获取上午下午字符串。static Locale[]返回所有区域的数组,该类的getInstance方法可以返回本地化实例。String[]getEras()获取纪元字符串。static final DateFormatSymbols获取默认区域设置的DateFormatSymbols实例。static final DateFormatSymbolsgetInstance(Locale locale) 获取指定区域设置的DateFormatSymbols实例。获取本地化的日期时间模式字符。String[]获取月份字符串。String[]获取缩写月份字符串。String[]获取缩写星期几字符串。String[]获取星期几字符串。String[][]获取时区字符串。inthashCode()覆盖hashCode。voidsetAmPmStrings(String[] newAmpms) 设置上午下午字符串。void设置纪元字符串。voidsetLocalPatternChars(String newLocalPatternChars) 设置本地化的日期时间模式字符。void设置月份字符串。voidsetShortMonths(String[] newShortMonths) 设置缩写月份字符串。voidsetShortWeekdays(String[] newShortWeekdays) 设置缩写星期几字符串。voidsetWeekdays(String[] newWeekdays) 设置星期几字符串。voidsetZoneStrings(String[][] newZoneStrings) 设置时区字符串。
-
Constructor Details
-
DateFormatSymbols
public DateFormatSymbols()通过从默认FORMAT区域的资源加载格式数据来构造一个DateFormatSymbols对象。此构造函数只能为Java运行时环境支持的区域构造实例,而不能为已安装的DateFormatSymbolsProvider实现支持的区域构造实例。要获得完整的区域覆盖范围,请使用getInstance方法。这相当于调用
DateFormatSymbols(Locale.getDefault(Locale.Category.FORMAT))。- 抛出:
-
MissingResourceException- 如果无法找到默认区域的资源或无法加载资源。 - 参见:
-
DateFormatSymbols
通过从给定区域的资源加载格式数据来构造一个DateFormatSymbols对象。此构造函数只能为Java运行时环境支持的区域构造实例,而不能为已安装的DateFormatSymbolsProvider实现支持的区域构造实例。要获得完整的区域覆盖范围,请使用getInstance方法。- 参数:
-
locale- 所需的区域 - 抛出:
-
MissingResourceException- 如果无法找到指定区域的资源或无法加载资源。 - 参见:
-
-
Method Details
-
getAvailableLocales
返回所有可以返回本地化实例的该类的getInstance方法的区域数组。返回的数组表示Java运行时支持的区域和已安装的DateFormatSymbolsProvider实现支持的区域的并集。至少,返回的数组必须包含等于Locale.ROOT和等于Locale.US的Locale实例。- 返回:
-
可用于本地化
DateFormatSymbols实例的区域数组。 - 自版本:
- 1.6
-
getInstance
获取默认区域设置的DateFormatSymbols实例。此方法提供对Java运行时本身支持的区域以及已安装的DateFormatSymbolsProvider实现支持的区域的DateFormatSymbols实例的访问。这相当于调用
getInstance(Locale.getDefault(Locale.Category.FORMAT))。- 返回:
-
一个
DateFormatSymbols实例。 - 自版本:
- 1.6
- 参见:
-
getInstance
获取指定区域设置的DateFormatSymbols实例。此方法提供对Java运行时本身支持的区域以及已安装的DateFormatSymbolsProvider实现支持的区域的DateFormatSymbols实例的访问。- 参数:
-
locale- 给定的区域。 - 返回:
-
一个
DateFormatSymbols实例。 - 抛出:
-
NullPointerException- 如果locale为null - 自版本:
- 1.6
-
getEras
获取纪元字符串。例如:"公元"和"公元前"。- 返回:
- 纪元字符串。
-
setEras
设置纪元字符串。例如:"公元"和"公元前"。- 参数:
-
newEras- 新的纪元字符串。
-
getMonths
获取月份字符串。例如:"一月"、"二月"等。返回的数组将包含12或13个元素,具体取决于是否支持Calendar.UNDECIMBER。使用Calendar.JANUARY、Calendar.FEBRUARY等来索引结果数组。如果语言要求格式化和独立使用需要不同形式,此方法将返回格式化形式的月份名称。例如,捷克语中一月的首选月份名称在格式化形式中是ledna,而在独立形式中是leden。在这种情况下,此方法将返回
"ledna"。有关更多详细信息,请参阅 Unicode Locale Data Markup Language (LDML)规范中的日历元素。- 实现要求:
-
由于支持
Calendar.UNDECIMBER,此方法返回13个元素。 - 返回:
- 月份字符串。
- 外部规范
-
setMonths
设置月份字符串。例如:"一月"、"二月"等。- 参数:
-
newMonths- 新的月份字符串。数组应该按照Calendar.JANUARY,Calendar.FEBRUARY等进行索引。
-
getShortMonths
获取短月份字符串。例如:"一月","二月"等。返回的数组将包含12或13个元素,取决于是否支持Calendar.UNDECIMBER。使用Calendar.JANUARY,Calendar.FEBRUARY等来索引结果数组。如果语言需要不同形式的格式化和独立使用,此方法将以格式化形式返回短月份名称。例如,加泰罗尼亚语中一月的首选缩写在格式化形式中是de gen.,而在独立形式中是gen.。在这种情况下,此方法将返回
"de gen."。更多详情请参考 Unicode Locale Data Markup Language (LDML)规范中的日历元素。- 实现要求:
-
由于支持
Calendar.UNDECIMBER,此方法返回13个元素。 - 返回:
- 短月份字符串。
- 外部规范
-
setShortMonths
设置短月份字符串。例如:"一月","二月"等。- 参数:
-
newShortMonths- 新的短月份字符串。数组应该按照Calendar.JANUARY,Calendar.FEBRUARY等进行索引。
-
getWeekdays
获取星期字符串。例如:"星期日","星期一"等。- 返回:
-
星期字符串。使用
Calendar.SUNDAY,Calendar.MONDAY等来索引结果数组。
-
setWeekdays
设置星期字符串。例如:"星期日","星期一"等。- 参数:
-
newWeekdays- 新的星期字符串。数组应该按照Calendar.SUNDAY,Calendar.MONDAY等进行索引。
-
getShortWeekdays
获取短星期字符串。例如:"周日","周一"等。- 返回:
-
短星期字符串。使用
Calendar.SUNDAY,Calendar.MONDAY等来索引结果数组。
-
setShortWeekdays
设置短星期字符串。例如:"周日","周一"等。- 参数:
-
newShortWeekdays- 新的短星期字符串。数组应该按照Calendar.SUNDAY,Calendar.MONDAY等进行索引。
-
getAmPmStrings
获取上午下午字符串。例如:"上午"和"下午"。- 返回:
- 上午下午字符串。
-
setAmPmStrings
设置上午下午字符串。例如:"上午"和"下午"。- 参数:
-
newAmpms- 新的上午下午字符串。
-
getZoneStrings
获取时区字符串。不建议使用此方法;请使用TimeZone.getDisplayName()代替。返回的值是一个大小为n乘以m的字符串二维数组,其中m至少为5。每个n行是一个包含单个
TimeZone的本地化名称的条目。每个这样的行包含(i范围从0到n-1):zoneStrings[i][0]- 时区IDzoneStrings[i][1]- 标准时间中区域的长名称zoneStrings[i][2]- 标准时间中区域的短名称zoneStrings[i][3]- 夏令时中区域的长名称zoneStrings[i][4]- 夏令时中区域的短名称
TimeZone类的有效ID之一,不是自定义ID。所有其他条目都是本地化名称。如果某个区域不实现夏令时,不应使用夏令时名称。如果在此
DateFormatSymbols实例上调用了setZoneStrings,则返回该调用提供的字符串。否则,返回的数组包含Java运行时和已安装的TimeZoneNameProvider实现提供的名称。- 返回:
- 时区字符串。
- 参见:
-
setZoneStrings
设置时区字符串。参数必须是大小为n乘以m的字符串二维数组,其中m至少为5。每个n行是一个包含单个TimeZone的本地化名称的条目。每个这样的行包含(i范围从0到n-1):zoneStrings[i][0]- 时区IDzoneStrings[i][1]- 标准时间中区域的长名称zoneStrings[i][2]- 标准时间中区域的短名称zoneStrings[i][3]- 夏令时中区域的长名称zoneStrings[i][4]- 夏令时中区域的短名称
TimeZone类的有效ID之一,不是自定义ID。所有其他条目都是本地化名称。- 参数:
-
newZoneStrings- 新的时区字符串。 - 抛出:
-
IllegalArgumentException- 如果newZoneStrings中任何行的长度小于5 -
NullPointerException- 如果newZoneStrings为null - 参见:
-
getLocalPatternChars
获取本地化日期时间模式字符。例如:'u','t'等。- 返回:
- 本地化日期时间模式字符。
-
setLocalPatternChars
设置本地化日期时间模式字符。例如:'u','t'等。- 参数:
-
newLocalPatternChars- 新的本地化日期时间模式字符。
-
clone
覆盖Cloneable -
hashCode
public int hashCode()覆盖hashCode。为DateFormatSymbols对象生成哈希码。 -
equals
覆盖equals
-