- 所有已实现的接口:
-
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
ConstructorDescription通过从默认FORMAT
区域的资源加载格式数据来构造一个DateFormatSymbols对象。DateFormatSymbols
(Locale locale) 通过从给定区域的资源加载格式数据来构造一个DateFormatSymbols对象。 -
Method Summary
Modifier and TypeMethodDescriptionclone()
覆盖Cloneableboolean
覆盖equalsString[]
获取上午下午字符串。static Locale[]
返回所有区域的数组,该类的getInstance
方法可以返回本地化实例。String[]
getEras()
获取纪元字符串。static final DateFormatSymbols
获取默认区域设置的DateFormatSymbols
实例。static final DateFormatSymbols
getInstance
(Locale locale) 获取指定区域设置的DateFormatSymbols
实例。获取本地化的日期时间模式字符。String[]
获取月份字符串。String[]
获取缩写月份字符串。String[]
获取缩写星期几字符串。String[]
获取星期几字符串。String[][]
获取时区字符串。int
hashCode()
覆盖hashCode。void
setAmPmStrings
(String[] newAmpms) 设置上午下午字符串。void
设置纪元字符串。void
setLocalPatternChars
(String newLocalPatternChars) 设置本地化的日期时间模式字符。void
设置月份字符串。void
setShortMonths
(String[] newShortMonths) 设置缩写月份字符串。void
setShortWeekdays
(String[] newShortWeekdays) 设置缩写星期几字符串。void
setWeekdays
(String[] newWeekdays) 设置星期几字符串。void
setZoneStrings
(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
-