Module java.base
Package java.text

Class DateFormatSymbols

java.lang.Object
java.text.DateFormatSymbols
所有已实现的接口:
Serializable, Cloneable

public class DateFormatSymbols extends Object implements Serializable, Cloneable
DateFormatSymbols是一个公共类,用于封装可本地化的日期时间格式化数据,例如月份名称、星期几的名称和时区数据。 SimpleDateFormat使用DateFormatSymbols来封装这些信息。

通常情况下,不应直接使用DateFormatSymbols。相反,建议使用DateFormat类的工厂方法创建日期时间格式化程序:getTimeInstancegetDateInstancegetDateTimeInstance。这些方法会自动为格式化程序创建一个DateFormatSymbols,因此您无需自行创建。创建格式化程序后,可以使用setPattern方法修改其格式模式。有关使用DateFormat的工厂方法创建格式化程序的更多信息,请参阅DateFormat

如果决定为特定区域设置特定格式模式的日期时间格式化程序,可以使用以下方式:

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

如果区域包含"rg"(区域覆盖)Unicode扩展,则符号将被覆盖为指定区域的符号。

DateFormatSymbols对象是可克隆的。获取DateFormatSymbols对象后,可以随意修改日期时间格式化数据。例如,可以用易于记忆的字符替换本地化的日期时间格式模式字符。或者可以将代表性城市更改为您喜欢的城市。

可以添加新的DateFormatSymbols子类以支持SimpleDateFormat用于其他区域的日期时间格式化。

自版本:
1.1
参见:
  • Constructor Details

  • Method Details

    • getAvailableLocales

      public static Locale[] getAvailableLocales()
      返回所有可以返回本地化实例的该类的getInstance方法的区域数组。返回的数组表示Java运行时支持的区域和已安装的DateFormatSymbolsProvider实现支持的区域的并集。至少,返回的数组必须包含等于Locale.ROOT和等于Locale.USLocale实例。
      返回:
      可用于本地化DateFormatSymbols实例的区域数组。
      自版本:
      1.6
    • getInstance

      public static final DateFormatSymbols getInstance()
      获取默认区域设置的DateFormatSymbols实例。此方法提供对Java运行时本身支持的区域以及已安装的DateFormatSymbolsProvider实现支持的区域的DateFormatSymbols实例的访问。

      这相当于调用getInstance(Locale.getDefault(Locale.Category.FORMAT))

      返回:
      一个DateFormatSymbols实例。
      自版本:
      1.6
      参见:
    • getInstance

      public static final DateFormatSymbols getInstance(Locale locale)
      获取指定区域设置的DateFormatSymbols实例。此方法提供对Java运行时本身支持的区域以及已安装的DateFormatSymbolsProvider实现支持的区域的DateFormatSymbols实例的访问。
      参数:
      locale - 给定的区域。
      返回:
      一个DateFormatSymbols实例。
      抛出:
      NullPointerException - 如果locale为null
      自版本:
      1.6
    • getEras

      public String[] getEras()
      获取纪元字符串。例如:"公元"和"公元前"。
      返回:
      纪元字符串。
    • setEras

      public void setEras(String[] newEras)
      设置纪元字符串。例如:"公元"和"公元前"。
      参数:
      newEras - 新的纪元字符串。
    • getMonths

      public String[] getMonths()
      获取月份字符串。例如:"一月"、"二月"等。返回的数组将包含12或13个元素,具体取决于是否支持Calendar.UNDECIMBER。使用Calendar.JANUARYCalendar.FEBRUARY等来索引结果数组。

      如果语言要求格式化和独立使用需要不同形式,此方法将返回格式化形式的月份名称。例如,捷克语中一月的首选月份名称在格式化形式中是ledna,而在独立形式中是leden。在这种情况下,此方法将返回"ledna"。有关更多详细信息,请参阅 Unicode Locale Data Markup Language (LDML)规范中的日历元素

      实现要求:
      由于支持Calendar.UNDECIMBER,此方法返回13个元素。
      返回:
      月份字符串。
      外部规范
    • setMonths

      public void setMonths(String[] newMonths)
      设置月份字符串。例如:"一月"、"二月"等。
      参数:
      newMonths - 新的月份字符串。数组应该按照Calendar.JANUARYCalendar.FEBRUARY等进行索引。
    • getShortMonths

      public String[] getShortMonths()
      获取短月份字符串。例如:"一月","二月"等。返回的数组将包含12或13个元素,取决于是否支持Calendar.UNDECIMBER。使用Calendar.JANUARYCalendar.FEBRUARY等来索引结果数组。

      如果语言需要不同形式的格式化和独立使用,此方法将以格式化形式返回短月份名称。例如,加泰罗尼亚语中一月的首选缩写在格式化形式中是de gen.,而在独立形式中是gen.。在这种情况下,此方法将返回"de gen."。更多详情请参考 Unicode Locale Data Markup Language (LDML)规范中的日历元素

      实现要求:
      由于支持Calendar.UNDECIMBER,此方法返回13个元素。
      返回:
      短月份字符串。
      外部规范
    • setShortMonths

      public void setShortMonths(String[] newShortMonths)
      设置短月份字符串。例如:"一月","二月"等。
      参数:
      newShortMonths - 新的短月份字符串。数组应该按照Calendar.JANUARYCalendar.FEBRUARY等进行索引。
    • getWeekdays

      public String[] getWeekdays()
      获取星期字符串。例如:"星期日","星期一"等。
      返回:
      星期字符串。使用Calendar.SUNDAYCalendar.MONDAY等来索引结果数组。
    • setWeekdays

      public void setWeekdays(String[] newWeekdays)
      设置星期字符串。例如:"星期日","星期一"等。
      参数:
      newWeekdays - 新的星期字符串。数组应该按照Calendar.SUNDAYCalendar.MONDAY等进行索引。
    • getShortWeekdays

      public String[] getShortWeekdays()
      获取短星期字符串。例如:"周日","周一"等。
      返回:
      短星期字符串。使用Calendar.SUNDAYCalendar.MONDAY等来索引结果数组。
    • setShortWeekdays

      public void setShortWeekdays(String[] newShortWeekdays)
      设置短星期字符串。例如:"周日","周一"等。
      参数:
      newShortWeekdays - 新的短星期字符串。数组应该按照Calendar.SUNDAYCalendar.MONDAY等进行索引。
    • getAmPmStrings

      public String[] getAmPmStrings()
      获取上午下午字符串。例如:"上午"和"下午"。
      返回:
      上午下午字符串。
    • setAmPmStrings

      public void setAmPmStrings(String[] newAmpms)
      设置上午下午字符串。例如:"上午"和"下午"。
      参数:
      newAmpms - 新的上午下午字符串。
    • getZoneStrings

      public String[][] getZoneStrings()
      获取时区字符串。不建议使用此方法;请使用TimeZone.getDisplayName()代替。

      返回的值是一个大小为n乘以m的字符串二维数组,其中m至少为5。每个n行是一个包含单个TimeZone的本地化名称的条目。每个这样的行包含(i范围从0到n-1):

      • zoneStrings[i][0] - 时区ID
      • zoneStrings[i][1] - 标准时间中区域的长名称
      • zoneStrings[i][2] - 标准时间中区域的短名称
      • zoneStrings[i][3] - 夏令时中区域的长名称
      • zoneStrings[i][4] - 夏令时中区域的短名称
      时区ID不是本地化的;它是TimeZone类的有效ID之一,不是自定义ID。所有其他条目都是本地化名称。如果某个区域不实现夏令时,不应使用夏令时名称。

      如果在此DateFormatSymbols实例上调用了setZoneStrings,则返回该调用提供的字符串。否则,返回的数组包含Java运行时和已安装的TimeZoneNameProvider实现提供的名称。

      返回:
      时区字符串。
      参见:
    • setZoneStrings

      public void setZoneStrings(String[][] newZoneStrings)
      设置时区字符串。参数必须是大小为n乘以m的字符串二维数组,其中m至少为5。每个n行是一个包含单个TimeZone的本地化名称的条目。每个这样的行包含(i范围从0到n-1):
      • zoneStrings[i][0] - 时区ID
      • zoneStrings[i][1] - 标准时间中区域的长名称
      • zoneStrings[i][2] - 标准时间中区域的短名称
      • zoneStrings[i][3] - 夏令时中区域的长名称
      • zoneStrings[i][4] - 夏令时中区域的短名称
      时区ID不是本地化的;它是TimeZone类的有效ID之一,不是自定义ID。所有其他条目都是本地化名称。
      参数:
      newZoneStrings - 新的时区字符串。
      抛出:
      IllegalArgumentException - 如果newZoneStrings中任何行的长度小于5
      NullPointerException - 如果newZoneStrings为null
      参见:
    • getLocalPatternChars

      public String getLocalPatternChars()
      获取本地化日期时间模式字符。例如:'u','t'等。
      返回:
      本地化日期时间模式字符。
    • setLocalPatternChars

      public void setLocalPatternChars(String newLocalPatternChars)
      设置本地化日期时间模式字符。例如:'u','t'等。
      参数:
      newLocalPatternChars - 新的本地化日期时间模式字符。
    • clone

      public Object clone()
      覆盖Cloneable
      覆盖:
      clone 在类 Object
      返回:
      此实例的克隆。
      参见:
    • hashCode

      public int hashCode()
      覆盖hashCode。为DateFormatSymbols对象生成哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      此对象的哈希码值。
      参见:
    • equals

      public boolean equals(Object obj)
      覆盖equals
      覆盖:
      equals 在类 Object
      参数:
      obj - 用于比较的引用对象。
      返回:
      如果此对象与obj参数相同,则返回true;否则返回false
      参见: