flash.globalizationDateTimeFormatter DateTimeFormatter 类为 Date 对象提供区分区域设置的格式设置并提供对本地化日期字段名的访问权限。Object DateTimeFormatter 类为 Date 对象提供区分区域设置的格式设置并提供对本地化日期字段名的访问权限。此类的方法使用操作系统提供的函数和设置。

有两种选择日期时间格式的方法:使用预定义模式或自定模式。对于大多数应用程序,应该使用由 DateTimeStyle 常量 (LONGMEDIUMNONESHORT 指定的预定义样式。这些常量指定请求的区域设置的默认模式或指定基于用户操作系统设置的默认模式。

例如,以下代码使用默认短日期格式创建日期字符串:

var df:DateTimeFormatter = new DateTimeFormatter(LocaleID.DEFAULT, DateTimeStyle.SHORT, DateTimeStyle.NONE); var currentDate:Date = new Date(); var shortDate:String = df.format(currentDate);

创建此类的实例后,如果操作系统支持请求的区域设置,则根据请求的区域设置的约定和默认值以及构造函数的 dateStyletimeStyle 参数设置该实例的属性。如果请求的区域设置不可用,则根据回退或默认系统区域设置来设置属性,可以使用 actualLocaleIDName 属性检索默认系统区域设置。

此类包含其他方法,用于获得月名称和工作日名称的本地化字符串,以及检索可在日历选取器或其他类似应用程序中使用的每周第一天。

由于使用用户的设置、使用操作系统提供的格式设置模式,并在请求的区域设置不受支持时使用回退区域设置,因此,即便使用相同的区域设置 ID,对不同的用户显示的格式设置结果也可能不同。

下面的示例说明如何根据区域有区别地设置表示日期和时间值的字符串的格式。此示例中的输出会因操作系统和用户首选项不同而异。

此示例使用下列区域设置:英语(美国)、法语(法国)和西班牙语(西班牙)。

此示例为该列表中的每个区域设置执行下列操作:

  1. 使用默认样式(长日期样式和长时间样式)创建 DateTimeFormatter 对象
  2. 使用默认的长日期样式设置当前日期和时间的格式。
  3. 使用 DateTimeStyle.NONEDateTimeStyle.SHORT 常量更改为仅时间的短日期样式。
  4. 使用仅时间的短日期样式设置当前日期和时间的格式。
package { import flash.display.Sprite; import flash.globalization.DateTimeFormatter; import flash.globalization.DateTimeStyle; public class DateTimeFormatterExample extends Sprite { private var localeList:Array = new Array("en-US", "fr-FR", "es-ES"); public function DateTimeFormatterExample() { var date:Date = new Date(); for each (var locale:String in localeList) { var dtf:DateTimeFormatter = new DateTimeFormatter(locale); trace('\n' + "LocaleID requested=" + dtf.requestedLocaleIDName + "; actual=" + dtf.actualLocaleIDName); var longDate:String = dtf.format(date); trace(longDate + " (" + dtf.getDateTimePattern() + ")"); dtf.setDateTimeStyles(DateTimeStyle.NONE, DateTimeStyle.SHORT); var shortDate:String = dtf.format(date); trace(shortDate + " (" + dtf.getDateTimePattern() + ")"); } } } }
下面的示例说明应用程序如何根据用户选择的模式设置日期格式。此示例中的输出会因操作系统和用户首选项不同而异。

此示例为该列表中的每个区域设置执行下列操作:

  1. 创建 3 个输入和输出文本字段。
  2. 使用美国英语区域设置创建 DateTimeFormatter 对象。
  3. 调用 configureTextField() 函数,该函数将设置文本字段的位置和大小,并向 patternField 对象添加事件侦听器。
  4. 用户在 patternField 文本字段中输入模式后,textInputHandler 函数将使用该模式设置当前日期和时间的格式,并在输出文本字段中显示结果和 lastOperationStatus 值。
package { import flash.display.Sprite; import flash.events.Event; import flash.globalization.DateTimeFormatter; import flash.text.*; public class DateTimePatternExample extends Sprite { private var patternField:TextField = new TextField(); private var resultField:TextField = new TextField(); private var statusField:TextField = new TextField(); private var date:Date = new Date(); private var dtf:DateTimeFormatter = new DateTimeFormatter("en-US"); private function configureTextField():void { patternField.type = TextFieldType.INPUT; patternField.width = 300; patternField.height = 20; patternField.background = true; patternField.border = true; resultField.y = 40; resultField.width = 300; resultField.height = 20; statusField.y = 80; statusField.width = 300; statusField.height = 20; addChild(patternField); addChild(resultField); addChild(statusField); patternField.addEventListener(Event.CHANGE,textInputHandler); } private function textInputHandler(event:Event):void { dtf.setDateTimePattern(patternField.text); statusField.text = dtf.lastOperationStatus; resultField.text = dtf.format(date); } public function DateTimePatternExample() { configureTextField(); } } }
actualLocaleIDNameDateTimeStyleDateTimeFormatter 构造新 DateTimeFormatter 对象,以根据指定区域设置的约定以及提供的日期和时间格式设置样式来设置日期和时间的格式。如果 dateStyletimeStyle 参数不是有效的 DateTimeStyle 常量。 ArgumentErrorArgumentError如果 dateStyletimeStyle 参数为 null。 TypeErrorTypeErrorrequestedLocaleIDNameString确定日期或时间格式时使用的首选区域设置 ID 名称。 dateStyleStringlong指定设置日期格式时使用的样式。此值对应于由 DateTimeStyle 类枚举的一个值:
  • DateTimeStyle.LONG
  • DateTimeStyle.MEDIUM
  • DateTimeStyle.SHORT
  • DateTimeStyle.NONE
timeStyleStringlong指定设置时间格式时使用的样式。此值对应于由 DateTimeStyle 类枚举的一个值:
  • DateTimeStyle.LONG
  • DateTimeStyle.MEDIUM
  • DateTimeStyle.SHORT
  • DateTimeStyle.NONE
构造新 DateTimeFormatter 对象,以根据指定区域设置的约定以及提供的日期和时间格式设置样式来设置日期和时间的格式。日期和时间样式用于将日期和时间格式设置模式设置为操作系统中预定义的与区域设置相关的模式。

此构造函数确定当前操作系统是否支持请求的区域设置 ID 名称。如果不支持,则使用回退区域设置。回退区域设置 ID 的名称可通过 actualLocaleIDName 属性确定。

如果回退用于任何 requestedLocaleIDNamedateStyletimeStyle 参数,则会设置 lastOperationStatus 属性来表示回退类型。

要根据用户的当前操作系统首选项进行格式设置,请将 requestedLocaleIDName 参数中的值 LocaleID.DEFAULT 传递给构造函数。

调用构造函数并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

如果请求的区域设置 ID 名称不可用,则将 lastOperationStatus 属性设置为下列属性之一:

  • LastOperationStatus.USING_FALLBACK_WARNING
  • LastOperationStatus.USING_DEFAULT_WARNING

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

有关以上列出的警告和 lastOperationStatus 属性其他可能值的详细信息,请参阅 LastOperationStatus 类中的说明。

lastOperationStatusrequestedLocaleIDNameactualLocaleIDNameDateTimeStyleLastOperationStatusLocaleID
formatUTC 根据 dateStyle、timeStyle 或日期时间模式,设置解释为以 UTC 时间表示(使用 Date 对象的 UTC 组成组件,如 dateUTC、dayUTC、fullYearUTC、hoursUTC、minutesUTC、monthUTC 和 secondsUTC)的 Date 对象的显示字符串的格式。表示日期或时间值的设置了格式的字符串。 StringdateTimeDate要设置格式的 Date 值。 根据 dateStyle、timeStyle 或日期时间模式,设置解释为以 UTC 时间表示(使用 Date 对象的 UTC 组成组件,如 dateUTC、dayUTC、fullYearUTC、hoursUTC、minutesUTC、monthUTC 和 secondsUTC)的 Date 对象的显示字符串的格式。将使用为此 DateTimeFormatter 实例指定的区域设置 ID 的约定和日期样式及时间样式或者自定义的日期模式和时间模式来完成格式设置。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

setDateTimeStyles()setDateTimePattern()getDateStyle()getTimeStyle()lastOperationStatusLastOperationStatus
format 设置解释为以用户本地时间表示(使用 Date 对象的本地时间组件,如 date、day、fullYear、hours、minutes、month 和 seconds)的 Date 对象的显示字符串的格式。表示日期或时间值的设置了格式的字符串。 StringdateTimeDate要设置格式的 Date 值。 设置解释为以用户本地时间表示(使用 Date 对象的本地时间组件,如 date、day、fullYear、hours、minutes、month 和 seconds)的 Date 对象的显示字符串的格式。将使用为此 DateTimeFormatter 实例指定的区域设置 ID 的约定和日期样式及时间样式或者自定义的日期模式和时间模式来完成格式设置。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

setDateTimeStyles()setDateTimePattern()getDateStyle()getTimeStyle()lastOperationStatusLastOperationStatus
getAvailableLocaleIDNames 列出此类支持的所有区域设置 ID 名称。一个字符串矢量,其中包含此类支持的所有区域设置 ID 名称。 列出此类支持的所有区域设置 ID 名称。

如果当前操作系统不支持此类,此方法返回 null 值。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatusLocaleID
getDateStyle 获取此实例 DateTimeFormatter 的日期样式。此格式程序的日期样式字符串。

可能的值:

  • DateTimeStyle.LONG
  • DateTimeStyle.MEDIUM
  • DateTimeStyle.SHORT
  • DateTimeStyle.NONE
  • DateTimeStyle.CUSTOM
String
获取此实例 DateTimeFormatter 的日期样式。日期样式用于从操作系统检索预定义的日期格式设置模式。可通过 DateTimeFormatter() 构造函数、setDateTimeStyles() 方法或 setDateTimePattern() 方法设置日期样式值。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

setDateTimeStyles()setDateTimePattern()lastOperationStatusDateTimeStyleDateTimeFormatterLastOperationStatus
getDateTimePattern 返回此 DateTimeFormatter 对象设置日期和时间格式所用的模式字符串。一个字符串,其中包含此 DateTimeFormatter 对象设置日期和时间格式所用的模式。 String 返回此 DateTimeFormatter 对象设置日期和时间格式所用的模式字符串。

可以使用以下三种方法之一设置此模式:

  1. 通过构造函数中使用的 dateStyletimeStyle 参数。
  2. 通过 setDateTimeStyles() 方法。
  3. 通过 setDateTimePattern() 方法。

有关模式语法的说明,请参阅 setDateTimePattern() 方法。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

DateTimeFormattersetDateTimeStyles()setDateTimePattern()lastOperationStatusLastOperationStatus
getFirstWeekday 返回一个整数,它对应于此区域设置和日历系统的每周第一天。一个整数,对应于此区域设置和日历系统的每周第一天。 int 返回一个整数,它对应于此区域设置和日历系统的每周第一天。值 0 对应于星期日,1 对应于星期一,依此类推,6 对应于星期六。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
getMonthNames 检索包含当前日历系统的月名称的本地化字符串列表。如果 nameStylecontext 参数为 null。 TypeErrorTypeError一个本地化字符串矢量,其中包含指定区域设置、名称样式和上下文的月名称。矢量中位于索引 0 处的第一个元素表示一年中第一个月的名称;下一个元素表示一年中第二个月的名称;以此类推。 nameStyleStringfull表示要使用的名称字符串样式。有效值为:
  • DateTimeNameStyle.FULL
  • DateTimeNameStyle.LONG_ABBREVIATION
  • DateTimeNameStyle.SHORT_ABBREVIATION
contextStringstandalone一个代码,表示在其中使用设置了格式的字符串的上下文。此上下文仅对于某些区域设置不同。有效值为:
  • DateTimeNameContext.FORMAT
  • DateTimeNameContext.STANDALONE
检索包含当前日历系统的月名称的本地化字符串列表。列表中的第一个元素表示一年中第一个月的名称。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusDateTimeNameContextDateTimeNameStyleLastOperationStatus
getTimeStyle 获取此实例 DateTimeFormatter 的时间样式。此格式程序的时间样式字符串。

可能的值:

  • DateTimeStyle.LONG
  • DateTimeStyle.MEDIUM
  • DateTimeStyle.SHORT
  • DateTimeStyle.NONE
  • DateTimeStyle.CUSTOM
String
获取此实例 DateTimeFormatter 的时间样式。时间样式用于从操作系统检索预定义的时间格式设置模式。可通过 DateTimeFormatter() 构造函数、setDateTimeStyles() 方法或 setDateTimePattern() 方法设置时间样式值。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

setDateTimeStyles()setDateTimePattern()lastOperationStatusDateTimeStyleDateTimeFormatterLastOperationStatus
getWeekdayNames 检索包含当前日历系统的工作日名称的本地化字符串列表。如果 nameStylecontext 参数为 null。 TypeErrorTypeError一个本地化字符串矢量,其中包含指定区域设置、名称样式和上下文的月名称。矢量中位于索引 0 处的第一个元素是星期日的名称;下一个元素是星期一的名称;依此类推。 nameStyleStringfull表示要使用的名称字符串样式。有效值为:
  • DateTimeNameStyle.FULL
  • DateTimeNameStyle.LONG_ABBREVIATION
  • DateTimeNameStyle.SHORT_ABBREVIATION
contextStringstandalone一个代码,表示在其中使用设置了格式的字符串的上下文。该上下文仅适用于月份名称随上下文变化的特定区域设置。例如,在希腊语中,月份名称单独显示时同与日一起显示时不同。有效值为:
  • DateTimeNameContext.FORMAT
  • DateTimeNameContext.STANDALONE
检索包含当前日历系统的工作日名称的本地化字符串列表。列表中的第一个元素表示星期日的名称。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusDateTimeNameContextDateTimeNameStyleLastOperationStatus
setDateTimePattern 设置此 DateTimeFormatter 对象设置日期和时间格式所用的模式字符串。如果模式参数为 null。 TypeErrorTypeErrorpatternString 设置此 DateTimeFormatter 对象设置日期和时间格式所用的模式字符串。

可通过以下三种方法之一设置用于对日期进行格式设置的模式:

  1. 通过构造函数中使用的 dateStyletimeStyle 参数。
  2. 通过 setDateTimeStyles() 方法。
  3. 通过 setDateTimePattern() 方法。

使用此方法的另一结果是:将覆盖此 DateTimeFormatter 对象的当前时间和日期样式,并将其值设置为 DateTimeStyle.CUSTOM

用于定义如何设置日期和时间格式的模式字符串。模式包含一系列将设置了格式的字符串中的日期和时间值替换的字母。例如,在“yyyy/MM”模式中,字符“yyyy”被四位数字的年份替换,它后面跟“/”字符,字符“MM”被两位数字的月份替换。

模式中所用的许多字符都可以重复使用多次以产生不同的输出,如下表所示。

如果序列超过了模式支持的最大字母数,则会将该序列映射回所支持的该模式字母的最长序列。例如:

  • MMMMMM 被替换为 MMMM
  • dddd 被替换为 dd
  • EEEEEEE 被替换为 EEEE
  • aa 被替换为 a
  • hhh 被替换为 hh
  • mmmm 被替换为 mm

从理论上说,一个模式最多可包含 255 个字符,但某些平台具有更严格的限制。如果模式超过了模式字符限制,则 lastOperationStatus 属性的值将被设置为 LastOperationStatus.PATTERN_SYNTAX_ERROR

并不是每一个操作系统都支持所有可能的模式。如果平台不支持某一种模式,则使用回退模式,并设置 lastOperationStatus 属性表示使用回退模式。如果未提供合理的回退模式,则使用空字符串,并设置 lastOperationStatus 属性表示不支持该模式。

下表列出了有效的模式字母以及它们的含义。

模式字母说明G纪元。由当前日期和日历的纪元字符串替换。并非所有操作系统都支持此模式。在不支持纪元的操作系统上,输入模式的字母被空字符串替换。

纪元模式中可以包含一到五个字母,具体解释如下:

  • 如果有一到三个模式字母,则将使用缩写格式。
  • 如果有四个模式字母,则格式将设置为完整形式。
  • 如果有五个模式字母,则格式将设置为短缩写形式。

有关公历(对于支持此模式的操作系统)的示例:

  • G, GG, GGG = AD
  • GGGG = Anno Domini
  • GGGGG = A
y年份。如果有两个模式字母,则显示年份的最后两位数字;否则由字母数目确定要显示的数字位数。如果年份值要求显示的数字位数多于字母数目提供的位数,则将提供完整的年份值。如果年份值要求的值少于字母数目,则将用 0 来填充年份值。下面的列表显示了 1 到 2005 年份值的结果。

示例:

  • y = 1
  • y = 2005
  • yy = 01
  • yy = 05
  • yyyy = 0001 或 01,具体取决于操作系统。
  • yyyy = 2005
  • yyyyy = 01 或 0001,具体取决于操作系统。超过 4 的年份值位数回退到操作系统支持的最大数字位数。
  • yyyyy = 2005
M 一年中的月份。月份模式中可以包含一到五个字母,具体设置如下:
  • 如果有一个模式字母,则格式将设置为一位或两位数值。
  • 如果有两个模式字母,则格式将设置为两位数值。
  • 如果有三个模式字母,则格式将设置为长缩写形式。
  • 如果有四个模式字母,则格式将解释为完整名称。
  • 如果有五个模式字母,则格式将设置为短缩写形式。并非所有操作系统都支持此格式,将回退到长缩写形式。

示例:

  • M = 7
  • MM = 07
  • MMM = Jul,7月
  • MMMM = July,7月
  • MMMMM = J 或 Jul,7 或 7月,具体取决于操作系统。
d 一个月中的某一天。月中某天模式中可以包含一个或两个字母,具体设置如下:
  • 如果有一个模式字母,则格式将设置为一位或两位数值。
  • 如果有两个模式字母,则格式将设置为两位数值。

示例:

  • d = 4
  • dd = 04
  • dd = 14
E星期中的天。星期中某天模式中可以包含一到五个字母,具体设置如下:
  • 如果有三个模式字母,则格式将设置为长缩写形式。
  • 如果有四个模式字母,则格式将解释为完整名称。
  • 如果有五个模式字母,则格式将设置为短缩写形式。并非所有操作系统都支持此格式,将回退到长缩写形式。

示例:

  • E,EE,EEE = Tues
  • EEEE = Tuesday
  • EEEEE = T 或 Tues,具体取决于操作系统。
Q季度。某些平台不支持此模式。季度模式中可以包含一到四个字母,具体设置如下:
  • 如果有一个模式字母,则格式将设置为一位数值。
  • 如果有两个模式字母,则格式将设置为两位数值。
  • 如果有三个模式字母,则格式将设置为缩写。
  • 如果有四个模式字母,则格式将解释为完整名称。

示例(对于支持此模式的操作系统):

  • Q = 2
  • QQ = 02
  • QQQ = Q2
  • QQQQ = 第二季度
w一年中的某一周。某些平台不支持此模式。此模式中可以包含一到两个字母,具体设置如下所示。
  • 如果有一个模式字母,则格式将设置为一位或两位数值。
  • 如果有两个模式字母,则格式将设置为两位数值。

以一年的第二周为例(对于支持此模式的操作系统):

  • w = 2
  • ww = 02
W一个月中的某一周。某些平台不支持此模式。此模式只可包含一个字母。

以 7 月的第二周为例(对于支持此模式的操作系统):

  • W = 2
D一年中的某一天。某些平台不支持此模式。此模式中可以包含一到三个字母。

以一年中的第二天为例(对于支持此模式的操作系统):

  • D = 2
  • DD = 02
  • DDD = 002
F日历月中每周第某天的出现次数。例如,如果用来为 10 月份的第三个星期一设置日期格式,此元素显示“3”。此模式只可包含一个字母。

以 7 月份的第二个星期三为例(对于支持此模式的操作系统):

  • F = 2
一个AM/PM 表示器。此模式只可包含一个字母:a 或 p。

示例:

  • a = AM,午前
  • p = PM,午后
h使用 12 小时制的一天中的某个小时 [1 - 12]。此模式必须包含一个或两个字母。

示例:

  • h = 1
  • h = 12
  • hh = 01
H使用 24 小时制的一天中的某个小时 [0 - 23]。此模式必须包含一个或两个字母。

示例:

  • H = 0
  • H = 23
  • HH = 00
K使用 12 小时制的一天中的某个小时 [0 - 11]。此模式必须包含一个或两个字母。并非所有操作系统都支持此模式。

示例(对于支持此模式的操作系统):

  • K = 0
  • K = 11
  • KK = 00
k使用 24 小时制的一天中的某个小时 [1 - 24]。此模式必须包含一个或两个字母。并非所有操作系统都支持此模式。

示例(对于支持此模式的操作系统):

  • k = 1
  • k = 24
  • kk = 01
m小时内第几分钟 [0 - 59]。此模式必须包含一个或两个字母。

示例:

  • m = 2
  • m = 59
  • mm = 02
s分钟内第几秒 [0 - 59]。此模式必须包含一个或两个字母。

示例:

  • s = 2
  • s = 59
  • ss = 02
S毫秒。此模式必须包含一到五个字母。根据使用的字母数对此值进行舍入。当使用五个字符 (SSSSS) 时,它表示毫秒小数。

示例:

  • S = 2
  • SS = 24
  • SSS = 235
  • SSSS = 2350
  • SSSSS = 23500
z时区。将时区表示为相对于标准时间或夏令时(而无需参考特定位置)的字符串。并非所有操作系统都支持此模式。在不支持时区模式的操作系统上,输入模式的字母被空字符串替换。在不支持此模式的操作系统上,并不是所有的区域设置都有定义的字符串。这些区域设置将回退到本地化 GMT 格式,例如 GMT-08:00 或 GW-08:00

此时区模式必须包含一到四个字母,具体设置如下:

  • 如果有一到三个模式字母,则格式将设置为缩写形式。
  • 如果有四个模式字母,则格式将解释为完整名称。

示例(对于支持此格式的操作系统):

  • z,zz,zzz = PDT
  • z,zz,zzz = PST
  • z,zz,zzz = GMT-0800
  • zzzz = 太平洋夏令时
  • zzzz = 太平洋标准时间
Z时区。将时区表示为与 GMT 的偏移。并非所有操作系统都支持此模式。在不支持时区模式的操作系统上,输入模式的字母被空字符串替换。

此时区模式必须包含一到四个字母,具体设置如下:

  • 如果有一到三个模式字母,则格式将使用 RFC 822 格式。
  • 如果有四个模式字母,则格式将使用本地化的 GMT 格式。对于不具有本地化 GMT 格式的区域设置,此模式回退到的未本地化的 GMT 格式。

示例(对于支持此格式的操作系统):

  • Z,ZZ,ZZZ = -0800
  • ZZZZ = GMT-08:00,GW-08:00
v时区。表示不需要参考特定位置或区分夏令时或标准时间的一般时区的字符串。并非所有操作系统都支持此模式。在不支持时区模式的操作系统上,输入模式的字母被空字符串替换。在支持此模式的操作系统上,如果本地化名称不可用,则提供回退字符串。

此时区模式必须包含一个或四个字母,具体设置如下:

  • 如果有一个模式字母,则格式使用缩写形式。
  • 如果有四个模式字母,则格式使用完整形式。

示例(对于支持此格式的操作系统):

  • v = PT
  • vvvv = 太平洋时间
“其他文本”模式字符串中可以包含文本和标点。但是,从 a 到 z 和从 A 到 Z 的字符都被保留为语法字符,要将其包含在设置了格式的字符串中,则必须使用单引号将其引起来。要将单引号包含在结果字符串中,则必须在模式字符串中使用两个单引号。这两个单引号可以出现在模式字符串中带引号部分的内部或外部。不匹配的单引号对在字符串的结尾处被终止。

示例:

  • EEEE, MMM. d, yyyy 'at' h 'o''clock' a= Tuesday, Sept. 8, 2005 at 1 o'clock PM
  • yyyy年M月d日 = 2005年9月8日
  • mm''ss'' = 43'01'

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

DateTimeFormattersetDateTimeStyles()setDateTimePattern()lastOperationStatusLastOperationStatus
setDateTimeStyles 设置此 DateTimeFormatter 实例的日期和时间样式。如果 dateStyletimeStyle 参数不是有效的 DateTimeStyle 常量。 ArgumentErrorArgumentError如果 dateStyletimeStyle 参数为 null。 TypeErrorTypeErrordateStyleString指定设置日期格式时使用的样式。此值对应于由 DateTimeStyle 类枚举的一个值:
  • DateTimeStyle.LONG
  • DateTimeStyle.MEDIUM
  • DateTimeStyle.SHORT
  • DateTimeStyle.NONE
timeStyleString指定设置时间格式时使用的样式。此值对应于由 DateTimeStyle 类枚举的一个值:
  • DateTimeStyle.LONG
  • DateTimeStyle.MEDIUM
  • DateTimeStyle.SHORT
  • DateTimeStyle.NONE
设置此 DateTimeFormatter 实例的日期和时间样式。日期和时间样式用于将日期和时间格式设置模式设置为操作系统中预定义的、与区域设置相关的模式。此方法可替换使用 DateTimeFormatter() 构造函数或使用 setDateTimePattern() 方法设置的样式。日期和时间模式还根据设置的样式更新。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

DateTimeFormatter()setDateTimeStyles()setDateTimePattern()lastOperationStatusDateTimeStyleLastOperationStatus
actualLocaleIDName 此 DateTimeFormatter 对象使用的实际区域设置 ID 的名称。String 此 DateTimeFormatter 对象使用的实际区域设置 ID 的名称。

根据操作系统和传递给 Collator() 构造函数的 requestedLocaleIDName 参数的值,该名称有三种可能的值。

  1. 如果请求的区域设置不是 LocaleID.DEFAULT 且操作系统支持该请求的区域设置,则返回的名称与 requestedLocaleIDName 属性相同。
  2. 如果将 LocaleID.DEFAULT 用作构造函数的 requestedLocaleIDName 参数的值,则使用由用户操作系统指定的当前区域设置的名称。LocaleID.DEFAULT 值保留用户在操作系统中的自定义设置。显式值作为 requestedLocaleIDName 参数传递与使用 LocaleID.DEFAULT 所产生的结果不一定相同,即使两个区域设置 ID 名称相同,也是如此。用户可能已在他们的计算机上对区域设置进行了自定义,通过请求显式区域设置 ID 名称(而不是使用 LocaleID.DEFAULT),您的应用程序将不会检索这些自定义设置。

    例如:

    var fmt:DateTimeFormatter = new DateTimeFormatter(LocaleID.DEFAULT); var aliName:String = fmt.actualLocaleIDName;

    在上面的示例中,aliName 是与用户当前的操作系统设置对应的区域设置的名称(例如,如果用户的区域设置设为“意大利语-意大利”,则其名称为“it-IT”),而不是“i-default”(LocaleID.DEFAULT 区域设置的名称)。

  3. 如果系统不支持在构造函数中指定的 requestedLocaleIDName,则会提供回退区域设置 ID 名称。

    例如:

    var fmt:DateTimeFormatter = new DateTimeFormatter("fr-CA"); var aliName:String = fmt.actualLocaleIDName;

    假设以上示例中的操作系统不支持“fr-CA”(法语-加拿大)区域设置 ID,则使用回退。在这种情况下,回退区域设置 ID 是“fr-FR”(法语-法国)。

LocaleIDrequestedLocaleIDNameDateTimeFormatter()
lastOperationStatus 此 DateTimeFormatter 对象执行的前一操作的状态。String 此 DateTimeFormatter 对象执行的前一操作的状态。只要调用构造函数或此类的方法或设置另一个属性,就会设置 lastOperationStatus 属性。有关可能的值,请参阅每种方法的说明。 LastOperationStatusrequestedLocaleIDName 传递到此 DateTimeFormatter 对象的构造函数的请求区域设置 ID 的名称。String 传递到此 DateTimeFormatter 对象的构造函数的请求区域设置 ID 的名称。

如果使用了 LocaleID.DEFAULT 值,则返回的名称将是“i-default”。如果应用了回退区域设置,则实际使用的区域设置可能与请求的区域设置不同。可以使用 actualLocaleIDName 属性检索实际区域设置的名称。

LocaleIDactualLocaleIDNameDateTimeFormatter()
LastOperationStatus LastOperationStatus 类枚举那些表示最近的全球化服务操作的状态的常量值。Object LastOperationStatus 类枚举那些表示最近的全球化服务操作的状态的常量值。这些值可通过在大多数全球化类中可用的只读属性 lastOperationStatus 检索。 BUFFER_OVERFLOW_ERROR 表示给定的缓冲区不足以容纳结果。bufferOverflowErrorString 表示给定的缓冲区不足以容纳结果。 ERROR_CODE_UNKNOWN 表示返回的错误代码未知。errorCodeUnknownString 表示返回的错误代码未知。当操作失败且返回的错误代码未知时,任何非静态方法或读取/写入属性都可返回此错误。 ILLEGAL_ARGUMENT_ERROR 表示传递给方法的参数是非法的。illegalArgumentErrorString 表示传递给方法的参数是非法的。

例如,下列代码显示当 CurrencyFormatter.grouping 属性设置为无效值“3;”时,设置了无效的参数错误状态。

var cf:CurrencyFormatter = new CurrencyFormatter("en-US"); cf.groupingPattern = "3;"; trace(cf.lastOperationStatus); // "illegalArgumentError"
INDEX_OUT_OF_BOUNDS_ERROR 表示迭代器超出范围或者为月、日或时间指定的参数无效。indexOutOfBoundsErrorString 表示迭代器超出范围或者为月、日或时间指定的参数无效。 INVALID_ATTR_VALUE 表示给定的属性值超出了预期的范围。invalidAttrValueString 表示给定的属性值超出了预期的范围。

下面的示例显示将 NumberFormatter.negativeNumberFormat 属性设置为超出范围的值会导致属性值状态无效。

var nf:NumberFormatter = new NumberFormatter(LocaleID.DEFAULT); nf.negativeNumberFormat = 9; nf.lastOperationStatus; // "invalidAttrValue"
INVALID_CHAR_FOUND 表示找到无效的 Unicode 值。invalidCharFoundString 表示找到无效的 Unicode 值。 MEMORY_ALLOCATION_ERROR 表示内存分配已失败。memoryAllocationErrorString 表示内存分配已失败。 NO_ERROR 表示上一操作成功,未出现任何错误。noErrorString 表示上一操作成功,未出现任何错误。此状态可由所有构造函数、非静态方法、静态方法和读取/写入属性返回。 NUMBER_OVERFLOW_ERROR 表示操作产生的值超出指定的数字类型。numberOverflowErrorString 表示操作产生的值超出指定的数字类型。 PARSE_ERROR 表示解析数字失败。parseErrorString 表示解析数字失败。此状态可由 formatter 类的解析方法(如 CurrencyFormatter.parse()NumberFormatter.parseNumber())返回。例如,如果值“12abc34”作为参数传递到 CurrencyFormatter.parse() 方法,此方法返回“NaN”,并将 lastOperationStatus 值设置为 LastOperationStatus.PARSE_ERRORPATTERN_SYNTAX_ERROR 表示设置数字、日期或时间格式所用的模式无效。patternSyntaxErrorString 表示设置数字、日期或时间格式所用的模式无效。如果用户的操作系统不支持指定的模式,则设置此状态。

例如,下列代码显示在使用无效的“xx”模式设置日期格式后 lastOperationStatus 属性的值:

var df:DateTimeFormatter = new DateTimeFormatter("en-US"); df.setDateTimePattern("xx"); trace(df.lastOperationStatus); // "patternSyntaxError"
PLATFORM_API_FAILED 表示基础平台 API 执行某操作失败。platformAPIFailedString 表示基础平台 API 执行某操作失败。 TRUNCATED_CHAR_FOUND 表示找到截断的 Unicode 字符值。truncatedCharFoundString 表示找到截断的 Unicode 字符值。 UNEXPECTED_TOKEN 表示在区域设置 ID 字符串中检测到意外的标记。unexpectedTokenString 表示在区域设置 ID 字符串中检测到意外的标记。

例如,以下代码显示在请求区域设置 ID 时使用不完整的字符串后 lastOperationStatus 属性的值。结果,在调用 LocaleID.getKeysAndValues() 方法后,lastOperationStatus 属性设为值 UNEXPECTED_TOKEN

var locale:LocaleID = new LocaleID("en-US@Collation"); var kav:Object = locale.getKeysAndValues(); trace(locale.lastOperationStatus); // "unexpectedToken"
UNSUPPORTED_ERROR 表示不支持请求的操作或选项。unsupportedErrorString 表示不支持请求的操作或选项。此状态可由 DateTimeFormatter.setDateTimePattern() 等方法在检索 Collator.ignoreCase 等属性时返回。 USING_DEFAULT_WARNING 表示在最近操作期间使用了操作系统默认值。usingDefaultWarningString 表示在最近操作期间使用了操作系统默认值。Class 构造函数可以返回此状态。 USING_FALLBACK_WARNING 表示在最近操作期间设置了回退值。usingFallbackWarningString 表示在最近操作期间设置了回退值。此状态可由 DateTimeFormatter.setDateTimeStyles() 等构造函数和方法在检索 CurrencyFormatter.groupingPattern 等属性时返回。
NationalDigitsType NationalDigitsType 类枚举表示 NumberFormatter 类所用的数字集的常量。Object NationalDigitsType 类枚举表示 NumberFormatter 类所用的数字集的常量。每个常量的值表示指定的十进制数字集中数字零的 Unicode 值。 ARABIC_INDIC 表示阿拉伯-印度文数字集的数字零的 Unicode 值。0x0660uint 表示阿拉伯-印度文数字集的数字零的 Unicode 值。 BALINESE 表示巴厘文数字集的数字零的 Unicode 值。0x1B50uint 表示巴厘文数字集的数字零的 Unicode 值。 BENGALI 表示孟加拉文数字集的数字零的 Unicode 值。0x09E6uint 表示孟加拉文数字集的数字零的 Unicode 值。 CHAM 表示查姆文数字集的数字零的 Unicode 值。0xAA50uint 表示查姆文数字集的数字零的 Unicode 值。 DEVANAGARI 表示梵文数字集的数字零的 Unicode 值。0x0966uint 表示梵文数字集的数字零的 Unicode 值。 EUROPEAN 表示拉丁语-1(欧洲)数字集的数字零的 Unicode 值。0x0030uint 表示拉丁语-1(欧洲)数字集的数字零的 Unicode 值。 EXTENDED_ARABIC_INDIC 表示扩展阿拉伯-印度文数字集的数字零的 Unicode 值。0x06F0uint 表示扩展阿拉伯-印度文数字集的数字零的 Unicode 值。 FULL_WIDTH 表示全宽数字集的数字零的 Unicode 值。0xFF10uint 表示全宽数字集的数字零的 Unicode 值。 GUJARATI 表示古吉拉特文数字集的数字零的 Unicode 值。0x0AE6uint 表示古吉拉特文数字集的数字零的 Unicode 值。 GURMUKHI 表示果鲁穆奇文数字集的数字零的 Unicode 值。0x0A66uint 表示果鲁穆奇文数字集的数字零的 Unicode 值。 KANNADA 表示卡纳达文数字集的数字零的 Unicode 值。0x0CE6uint 表示卡纳达文数字集的数字零的 Unicode 值。 KAYAH_LI 表示克耶黎文数字集的数字零的 Unicode 值。0xA900uint 表示克耶黎文数字集的数字零的 Unicode 值。 KHMER 表示高棉文数字集的数字零的 Unicode 值。0x17E0uint 表示高棉文数字集的数字零的 Unicode 值。 LAO 表示老挝文数字集的数字零的 Unicode 值。0x0ED0uint 表示老挝文数字集的数字零的 Unicode 值。 LEPCHA 表示列普查文数字集的数字零的 Unicode 值。0x1C40uint 表示列普查文数字集的数字零的 Unicode 值。 LIMBU 表示林布文数字集的数字零的 Unicode 值。0x1946uint 表示林布文数字集的数字零的 Unicode 值。 MALAYALAM 表示马拉亚拉姆文数字集的数字零的 Unicode 值。0x0D66uint 表示马拉亚拉姆文数字集的数字零的 Unicode 值。 MONGOLIAN 表示蒙古文数字集的数字零的 Unicode 值。0x1810uint 表示蒙古文数字集的数字零的 Unicode 值。 MYANMAR_SHAN 表示缅甸掸文数字集的数字零的 Unicode 值。0x1090uint 表示缅甸掸文数字集的数字零的 Unicode 值。 MYANMAR 表示缅甸文数字集的数字零的 Unicode 值。0x1040uint 表示缅甸文数字集的数字零的 Unicode 值。 NEW_TAI_LUE 表示西双版纳新傣文数字集的数字零的 Unicode 值。0x19D0uint 表示西双版纳新傣文数字集的数字零的 Unicode 值。 NKO 表示 Nko 文数字集的数字零的 Unicode 值。0x07C0uint 表示 Nko 文数字集的数字零的 Unicode 值。 OL_CHIKI 表示桑塔利文数字集的数字零的 Unicode 值。0x1C50uint 表示桑塔利文数字集的数字零的 Unicode 值。 ORIYA 表示奥里雅文数字集的数字零的 Unicode 值。0x0B66uint 表示奥里雅文数字集的数字零的 Unicode 值。 OSMANYA 表示奥斯曼亚文数字集的数字零的 Unicode 值。0x104A0uint 表示奥斯曼亚文数字集的数字零的 Unicode 值。 SAURASHTRA 表示索拉什特拉文数字集的数字零的 Unicode 值。0xA8D0uint 表示索拉什特拉文数字集的数字零的 Unicode 值。 SUNDANESE 表示巽他文数字集的数字零的 Unicode 值。0x1BB0uint 表示巽他文数字集的数字零的 Unicode 值。 TAMIL 表示泰米尔文数字集的数字零的 Unicode 值。0x0BE6uint 表示泰米尔文数字集的数字零的 Unicode 值。 TELUGU 表示泰卢固文数字集的数字零的 Unicode 值。0x0C66uint 表示泰卢固文数字集的数字零的 Unicode 值。 THAI 表示泰文数字集的数字零的 Unicode 值。0x0E50uint 表示泰文数字集的数字零的 Unicode 值。 TIBETAN 表示藏语数字集的数字零的 Unicode 值。0x0F20uint 表示藏语数字集的数字零的 Unicode 值。 VAI 表示瓦伊文数字集的数字零的 Unicode 值。0xA620uint 表示瓦伊文数字集的数字零的 Unicode 值。 CurrencyParseResult 一种数据结构,用于表示通过解析货币值提取的货币金额和货币符号或字符串。Object 一种数据结构,用于表示通过解析货币值提取的货币金额和货币符号或字符串。 CurrencyFormatter.parse()CurrencyParseResult 构造货币解析结果对象。valueNumberunknown表示货币金额值的数字。 symbolString表示货币符号的字符串。 构造货币解析结果对象。 currencyString 输入字符串中对应于货币符号或货币字符串的部分。String 输入字符串中对应于货币符号或货币字符串的部分。 value 从输入字符串提取的货币金额值。Number 从输入字符串提取的货币金额值。 NumberParseResult 一种数据结构,具有与通过解析字符串提取的数字相关的信息。Object 一种数据结构,具有与通过解析字符串提取的数字相关的信息。

数字字符串可以在数字周围包含前缀和后缀。在这种情况下,startIndex 属性设置为数字的第一个字符。而且,endIndex 属性设置为数字最后一个字符后面的字符索引。

NumberFormatter.parse()NumberFormatter.parseNumber()NumberParseResult 构造数字解析结果对象。valueNumberunknown输入字符串中数字部分的值。 startIndexint0x7fffffff输入字符串中数字的第一个字符的索引。 endIndexint0x7fffffff输入字符串中位于数字的最后一个字符之后的字符的索引。 构造数字解析结果对象。NumberParseResult 对象通常由 NumberFormatter.parse()NumberFormatter.parseNumber() 方法创建,而不是通过直接调用此构造函数创建。 NumberFormatter.parse()NumberFormatter.parseNumber()endIndex 输入字符串中位于数字部分的最后一个字符之后的字符的索引。int 输入字符串中位于数字部分的最后一个字符之后的字符的索引。 startIndex 输入字符串中数字部分的第一个字符的索引。int 输入字符串中数字部分的第一个字符的索引。 value 输入字符串中数字部分的值。Number 输入字符串中数字部分的值。
LocaleID LocaleID 类提供用于解析和使用区域设置 ID 名称的方法。Object LocaleID 类提供用于解析和使用区域设置 ID 名称的方法。此类支持使用由 Unicode 技术标准 #35 (http://unicode.org/reports/tr35/) 定义的语法的区域设置 ID 名称。 下面的示例说明如何检索和显示有关不同区域设置的 LocaleID 字符串的信息。

此示例使用以下区域设置:阿拉伯语(沙特阿拉伯)、英语(美国)、英语(美国、POSIX 变体)、中文(中国)、中文(台湾)、中文(简化汉字脚本)和中文(中国,具有多个键和值)

此示例为该列表中的每个区域设置执行下列操作:

  1. 新建 LocaleID 对象。
  2. 显示 LocaleID 的各种属性。显示的值将因操作系统和用户首选项不同而异。
  3. 显示该 LocaleID 的键和值的完整集合。
package { import flash.display.Sprite; import flash.globalization.LocaleID; public class LocaleIDExample extends Sprite { public function LocaleIDExample() { var localeNames:Array = ["ar-SA", "EN_us", "en-US-POSIX", "zh-CH", "zh-TW", "zh-Hans", "zh-CH@collation=pinyin;calendar=chinese;currency=RMB"]; for ( var i:int = 0; i < localeNames.length; i++ ) { var locID:LocaleID = new LocaleID( localeNames[i] as String ); trace('\n\n' + "LocaleID requested: " + locID.requestedLocaleIDName + "; actual: " + locID.actualLocaleIDName); trace( "Last Operation Status after new LocaleID: " + locID.lastOperationStatus); trace("name: " + locID.name); trace("language: " + locID.getLanguage() + "; status: " + locID.lastOperationStatus); trace("script: " + locID.getScript() + "; status: " + locID.lastOperationStatus); trace("region: " + locID.getRegion() + "; status: " + locID.lastOperationStatus); trace("variant: " + locID.getVariant() + "; status: " + locID.lastOperationStatus); trace("isRightToLeft: ", locID.isRightToLeft(), "; status: " + locID.lastOperationStatus); var keysAndValues:Object = locID.getKeysAndValues(); var key:String; for (key in keysAndValues) { trace("key: ", key + " value: " + keysAndValues[ key ]); } trace( "Last Operation Status after getKeysAndValues(): " + locID.lastOperationStatus); } } } }
Unicode 技术标准 #35LocaleID 使用给定的区域设置名称构造新的 LocaleID 对象。如果名称为 null。 ArgumentErrorArgumentErrornameString区域设置 ID 名称,其中还可包括一个可选的排序字符串。例如,“en-US”或“de-DE@collation=phonebook 使用给定的区域设置名称构造新的 LocaleID 对象。区域设置名称必须符合由 Unicode 技术标准 #35 ( http://unicode.org/reports/tr35/ ) 定义的语法。

成功完成构造函数后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

如果请求的区域设置 ID 名称不可用,则将 lastOperationStatus 属性设置为下列属性之一:

  • LastOperationStatus.USING_FALLBACK_WARNING
  • LastOperationStatus.USING_DEFAULT_WARNING

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

有关以上列出的警告和 lastOperationStatus 属性其他可能值的详细信息,请参阅 LastOperationStatus 类中的说明。

lastOperationStatusLastOperationStatus
determinePreferredLocales 根据所需的区域设置列表以及现在可用的区域设置列表返回可接受的区域设置列表。按用户的首选项排序的可用区域设置的子集。 want按首选项顺序排序的用户首选区域设置列表。 have可供此应用程序使用的区域设置的列表。此列表的顺序不重要。 keywordStringuserinterface用于帮助确定最佳匹配的关键字。 根据所需的区域设置列表以及现在可用的区域设置列表返回可接受的区域设置列表。

结果列表按首选项顺序排列。

下面是此方法的一个典型用例:

  • 一个用户指定了他所会语言的列表(存储于用户配置文件、浏览器设置或者 Cookie 中)。用户按照自己对这些语言的掌握程度列出它们,因此列表中的语言顺序与此相对应。这是“期望”列表。
  • 此应用程序将本地化为多种不同的语言。这是“具有”列表。
  • determinePreferredLocales() 方法返回这两个列表的交集,以便最先显示用户的首选语言。

如果当前操作系统不支持此功能,此方法将返回 null 值。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
getKeysAndValues 返回一个对象,其中包含 LocaleID 对象中的所有键和值对。一个包含 LocaleID 对象中的所有键和值的对象,被结构化为关联数组或哈希表。 Object 返回一个对象,其中包含 LocaleID 对象中的所有键和值对。

返回对象被结构化为哈希表或关联数组,其中每个属性名表示一个键,而属性的值表示该键的值。例如,以下代码列出使用 getKeysAndValues() 方法从 LocaleID 对象获取的所有键和值:

var myLocale:LocaleID = new LocaleID("fr-CA"); var localeData:Object = myLocale.getKeysAndValues(); for (var propertyName:String in localeData) { trace(propertyName + " = " + localeData[propertyName]); }

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
getLanguage 返回由区域设置 ID 名称指定的语言代码。通过解析区域设置 ID 名称获得的双字符语言代码。 String 返回由区域设置 ID 名称指定的语言代码。

如果无法正确解析区域设置名称,则语言代码与完整的区域名称相同。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
getRegion 返回区域设置 ID 名称指定的地区代码。一个双字符地区代码;如果无法解析地区代码或以其他方式根据区域设置名称进行确定,则为空字符串。 String 返回区域设置 ID 名称指定的地区代码。

如果无法解析或推测地区代码,此方法将返回空字符串。如果使用了未知或类似“xy”这样不完整的区域设置 ID 名称,就可能出现此情况。未根据固定列表对地区代码进行验证。例如,为区域设置 ID 名称“xx-YY”返回的地区代码是“YY”。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

如果地区不是指定的区域设置名称的一部分,则会“推测”区域设置的最可能的地区代码,并将 lastOperationStatus 属性设置为 LastOperationStatus.USING_FALLBACK_WARNING

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
getScript 返回由区域设置 ID 名称指定的脚本代码。一个四字符脚本代码;如果无法解析脚本代码或以其他方式根据区域设置名称进行确定,则为空字符串。 String 返回由区域设置 ID 名称指定的脚本代码。

如果无法解析或推测脚本代码,此方法将返回空字符串。如果使用了未知或类似“xy”这样不完整的区域设置 ID 名称,就可能出现此情况。未根据固定列表对脚本代码进行验证。例如,为区域设置 ID 名称“xx-Abcd-YY”返回的脚本代码是“Abcd”。

区域和语言也可以影响返回值。例如,“mn-MN”(蒙古语-蒙古)的脚本代码是“Cyrl”(西里尔文),而“mn-CN”(蒙古语-中国)的脚本代码是“Mong”(蒙古语)。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

如果脚本代码不是指定的区域名称的一部分,则会“推测”最可能的脚本代码,并将 lastOperationStatus 属性设置为 LastOperationStatus.USING_FALLBACK_WARNING

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
getVariant 返回由区域设置 ID 名称指定的语言变体代码。一个语言变体代码;如果区域设置 ID 名称不包含语言变体代码,则为空字符串。 String 返回由区域设置 ID 名称指定的语言变体代码。

如果给定的区域设置 ID 名称中不包含语言变体代码,则此方法将返回空字符串。(不需要推测,因为区域设置很少具有或需要语言变体。)

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
isRightToLeft 指定所指定的区域设置的文本方向是否为从右到左。如果文本行中常规文本的方向是从右到左,则为 true;否则为 falseBoolean 指定所指定的区域设置的文本方向是否为从右到左。

此结果可用于确定 Flash 文本引擎中的文本方向,以及用于决定是否应镜像用户界面以支持当前文本方向。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

flashx.textLayout.formats.DirectionlastOperationStatusLastOperationStatus
DEFAULT 表示应使用的用户默认语言首选项,就像在用户操作系统设置上指定的那样。i-defaultString 表示应使用的用户默认语言首选项,就像在用户操作系统设置上指定的那样。例如,对于 Windows,一般使用“控制面板”设置这些首选项,对于 Mac OS X,通常使用“系统首选项”设置这些首选项。

通过使用 LocaleID.DEFAULT 设置,可以为各种不同的操作使用不同的区域设置 ID 名称。例如,可以将一个区域设置用于排序,而将另一个区域设置用于格式设置。这种灵活性与用户首选项相关,根据设计,此类的行为遵守此方式。

此区域设置标识符不总是最适合使用的那一个。对于在浏览器中运行的应用程序,浏览器的首选区域设置是更好的选择。告知用户更改首选区域设置 ID 名称设置并将首选项保留在用户配置文件、Cookie 或共享对象中,通常是一种很好的做法。

lastOperationStatus 此 LocaleID 对象执行的最近操作的状态。String 此 LocaleID 对象执行的最近操作的状态。只要调用构造函数或此类的方法或设置另一个属性,就会设置 lastOperationStatus 属性。有关可能的值,请参阅每种方法的说明。 LastOperationStatusname 返回一个略微更“规范”的区域设置标识符。String 返回一个略微更“规范”的区域设置标识符。

此方法对区域设置 ID 名称执行以下转换,使其采用更规范的形式。

  • 对所有组件应用正确的大小写。
  • 将下划线转换为的破折号。

不执行其他处理。例如,不替换别名、不添加或删除元素。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

DateTimeStyle 枚举那些确定区域设置特定的日期和时间格式设置样式的常量。Object 枚举那些确定区域设置特定的日期和时间格式设置样式的常量。在构造 DateTimeFormatter 对象时或在调用 DateTimeFormatter.setDateTimeStyles() 方法时,会使用这些常量。

CUSTOM 常量不可用于 DateTimeFormatter 构造函数或 DateFormatter.setDateTimeStyles() 方法。作为调用 DateTimeFormatter.setDateTimePattern() 方法的另一个结果,此常量将设置为 timeStyledateStyle 属性。

DateTimeFormatterCUSTOM 指定使用自定义样式字符串来指定日期或时间样式。customString 指定使用自定义样式字符串来指定日期或时间样式。 LONG 指定长型样式的日期或时间。longString 指定长型样式的日期或时间。 MEDIUM 指定中型样式的日期或时间。mediumString 指定中型样式的日期或时间。 NONE 指定设置了格式的字符串中不应包含日期或时间。noneString 指定设置了格式的字符串中不应包含日期或时间。 SHORT 指定短型样式的日期或时间。shortString 指定短型样式的日期或时间。
StringTools StringTools 类提供区分区域设置的大小写转换方法。Object StringTools 类提供区分区域设置的大小写转换方法。

在某些情况下,大写字母和小写字母之间的转换不是简单地从一个字符转换到另一个字符,而是需要进行语言特定或上下文特定的处理。例如:

  • 在土耳其语和阿塞拜疆语中,加点的小写字母 i 的大写形式是加点的大写字母 İ (U+0130)。与之相似,无点的大写字母 I 的小写形式是无点的小写字母ı (U+0131)。
  • 德语中使用的小写 sharp S ß (U+00DF) 转换后是大写形式的双 SS。
  • 在希腊语中,小写西格玛有两种形式(σ (U+03C3) 和 ς (U+03C2)),都转换成同一种大写形式的西格玛 Σ (U+03A3)。

此类的 toLowerCase() 方法和 toUpperCase() 方法提供此特殊大小写转换逻辑。

由于使用用户的设置、使用操作系统提供的大小写转换规则,并在请求的区域设置不受支持时使用回退区域设置,因此,即便使用相同的区域设置 ID,对不同的用户显示的大小写转换结果也可能不同。

此示例说明如何以语言更正的方式将不同的字符串转换为小写和大写。

此示例执行下列步骤:

  1. 创建 StringTools 对象。
  2. 使用土耳其语、希腊语和德语特有的字符定义 3 个字符串。
  3. 将每个字符串转换为大写和小写,并显示结果。本示例显示一些有趣的特定于区域设置的字符行为,如土耳其语“ı”和“Ä°”,德语“ß”和希腊语“Σςσ”。
package { import flash.display.Sprite; import flash.globalization.LocaleID; import flash.globalization.StringTools; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class StringToolsExample extends Sprite { public function StringToolsExample() { var localeName:String= LocaleID.DEFAULT; var strTool:StringTools = new StringTools(localeName); trace('\n\n' + "LocaleID requested: " + nf.requestedLocaleIDName + "; actual: " + nf.actualLocaleIDName); trace( "Last Operation Status:" + nf.lastOperationStatus ); var turkishStr:String = "iI ıİ"; var greekStr:String = "Σςσβΰ�Σ"; var germanStr:String= "ß"; var tfTurInp:TextField = createTextField(10, 10); tfTurInp.text="Turkish Input: \t " + turkishStr; var tfdash:TextField = createTextField(10, 20); tfdash.text="-------------------"; var tf1:TextField = createTextField(10, 30); tf1.text="\t Upper case: \t " + strTool.toUpperCase(turkishStr); var tf2:TextField = createTextField(10, 40); tf2.text="\t Lower case: \t " + strTool.toLowerCase(turkishStr); var tfgreekInp:TextField = createTextField(10, 60); tfgreekInp.text="Greek Input: \t " + greekStr; var tfdash1:TextField = createTextField(10, 70); tfdash1.text="-------------------"; var tf3:TextField = createTextField(10, 80); tf3.text="\t Upper case: \t " + strTool.toUpperCase(greekStr); var tf4:TextField = createTextField(10, 90); tf4.text="\t Lower case: \t " + strTool.toLowerCase(greekStr); var tfgermanInp:TextField = createTextField(10, 110); tfgermanInp.text="German Input: \t " + germanStr; var tfdash2:TextField = createTextField(10, 120); tfdash2.text="-------------------"; var tf5:TextField = createTextField(10, 130); tf5.text="\t Upper case: \t " + strTool.toUpperCase(germanStr); var tf6:TextField = createTextField(10, 140); tf6.text="\t Lower case: \t " + strTool.toLowerCase(germanStr); } private function createTextField(x:Number, y:Number):TextField { var result:TextField = new TextField(); result.x = x; result.y = y; result.autoSize=TextFieldAutoSize.LEFT; addChild(result); return result; } } }
StringTools 构造新的 StringTools 对象,用于根据给定区域设置的约定提供大小写转换和其它实用程序。requestedLocaleIDName 参数为 nullArgumentErrorArgumentErrorrequestedLocaleIDNameString确定日期或时间格式时使用的首选区域设置 ID 名称。 构造新的 StringTools 对象,用于根据给定区域设置的约定提供大小写转换和其它实用程序。

此构造函数确定当前操作系统是否支持请求的区域设置 ID 名称。如果不支持,则使用回退区域设置。如果使用了回退区域设置,则 lastOperationStatus 属性表示回退类型,并且 actualLocaleIDName 属性包含回退区域设置 ID 的名称。

当此构造函数成功完成时,lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

如果请求的区域设置 ID 名称不可用,则将 lastOperationStatus 属性设置为下列属性之一:

  • LastOperationStatus.USING_FALLBACK_WARNING
  • LastOperationStatus.USING_DEFAULT_WARNING

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

LocaleIDlastOperationStatusrequestedLocaleIDNameactualLocaleIDName
getAvailableLocaleIDNames 列出此类支持的所有区域设置 ID 名称。一个字符串矢量,其中包含此类支持的所有区域设置 ID 名称。 列出此类支持的所有区域设置 ID 名称。

如果当前操作系统不支持此类,此方法返回 null 值。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

toLowerCase 根据语言约定将字符串转换为小写形式。s 参数为 null 时。 ArgumentErrorArgumentError转换后的小写形式字符串。 StringsString要转换为小写形式的字符串。 根据语言约定将字符串转换为小写形式。根据区域设置,输出字符串长度可能与输入字符串长度不同。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
toUpperCase 根据语言约定将字符串转换为大写形式。s 参数为 null 时。 ArgumentErrorArgumentError转换后的大写形式字符串。 StringsString要转换为大写形式的字符串。 根据语言约定将字符串转换为大写形式。根据区域设置,输出字符串长度可能与输入字符串长度不同。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
actualLocaleIDName 此 StringTools 对象使用的实际区域设置 ID 的名称。String 此 StringTools 对象使用的实际区域设置 ID 的名称。

根据操作系统和传递给 StringTools() 构造函数的 requestedLocaleIDName 参数的值,该名称有三种可能的值。

  1. 如果请求的区域设置不是 LocaleID.DEFAULT 且操作系统支持该请求的区域设置,则返回的名称与 requestedLocaleIDName 属性相同。
  2. 如果将 LocaleID.DEFAULT 用作构造函数的 requestedLocaleIDName 参数的值,则使用由用户操作系统指定的当前区域设置的名称。LocaleID.DEFAULT 值保留用户在操作系统中的自定义设置。显式值作为 requestedLocaleIDName 参数传递与使用 LocaleID.DEFAULT 所产生的结果不一定相同,即使两个区域设置 ID 名称相同,也是如此。用户可能已在计算机上对区域设置进行了自定义,通过请求显式区域设置 ID 名称(而不是使用 LocaleID.DEFAULT),您的应用程序将不会检索这些自定义设置。

    例如:

    var tools:StringTools = new StringTools(LocaleID.DEFAULT); var aliName:String = tools.actualLocaleIDName;

    在上面的示例中,aliName 是与用户当前的操作系统设置对应的区域设置的名称(例如,如果用户的区域设置设为“意大利语-意大利”,则其名称为“it-IT”),而不是“i-default”(LocaleID.DEFAULT 区域设置的名称)。

  3. 如果系统不支持在构造函数中指定的 requestedLocaleIDName,则会提供回退区域设置 ID 名称。

    例如:

    var tools:StringTools = new StringTools("fr-CA"); var aliName:String = tools.actualLocaleIDName;

    假设以上示例中的操作系统不支持“fr-CA”(法语-加拿大)区域设置 ID,则使用回退。在这种情况下,回退区域设置 ID 是“fr-FR”(法语-法国)。

LocaleIDrequestedLocaleIDNameStringTools
lastOperationStatus 此 StringTools 对象执行的最近操作的状态。String 此 StringTools 对象执行的最近操作的状态。只要调用构造函数或此类的方法或设置另一个属性,就会设置 lastOperationStatus 属性。有关可能的值,请参阅每种方法的说明。 LastOperationStatusrequestedLocaleIDName 传递给 StringTools 对象的构造函数的请求的区域设置 ID 名称。String 传递给 StringTools 对象的构造函数的请求的区域设置 ID 名称。

如果使用了 LocaleID.DEFAULT 值,则返回的名称将是“i-default”。如果应用了回退区域设置,则实际使用的区域设置可能与请求的区域设置不同。可以使用 actualLocaleIDName 属性检索实际区域设置的名称。

LocaleIDactualLocaleIDNameStringTools()
CollatorMode CollatorMode 类枚举那些控制由 Collator 对象执行的字符串比较行为的常量值。Object CollatorMode 类枚举那些控制由 Collator 对象执行的字符串比较行为的常量值。这些常量表示可在 Collator() 构造函数的 initialMode 参数中传递的值。 CollatorMATCHING 初始化 Collator 对象,以便针对确定两个字符串是否等效而优化比较方法。matchingString 初始化 Collator 对象,以便针对确定两个字符串是否等效而优化比较方法。在此模式下,字符串比较会忽略大写和小写字母、重音符号等区别。 Collator() 构造函数SORTING 初始化 Collator 对象,以便为要向最终用户显示的文本字符串列表排序而优化比较方法。sortingString 初始化 Collator 对象,以便为要向最终用户显示的文本字符串列表排序而优化比较方法。在此模式下,字符串比较根据区域设置所需的语言和排序规则考虑大写和小写字母、重音符号等区别。 Collator() 构造函数NumberFormatter NumberFormatter 类提供数值的区分区域设置的格式设置和解析。Object NumberFormatter 类提供数值的区分区域设置的格式设置和解析。它可以设置 intuintNumber 对象的格式。

NumberFormatter 类使用操作系统提供的数据和功能,设计用于根据特定区域设置的约定设置数字格式,这都基于用户首选项和用户操作系统支持的功能。数字格式内的负号、小数分隔符、分组分隔符、分组模式及其他元素的位置可能因区域设置而异。

如果操作系统支持请求的区域设置,则根据约定和请求的区域设置的默认值设置数字格式属性。如果请求的区域设置不可用,则根据回退或默认系统区域设置来设置属性,可以使用 actualLocaleIDName 属性检索默认系统区域设置。

由于要使用用户的设置、要使用操作系统提供的格式设置模式,并在请求的区域设置不受支持时使用回退区域设置,因此,即便使用相同的区域设置 ID,对不同的用户显示的格式设置结果也可能不同。

此示例说明如何根据不同的区域设置有区别地设置数字的格式。

此示例使用以下区域设置:针对数字格式的默认操作系统区域设置、日语(日本)、英语(美国)和法语(法国)。此示例使用静态成员 LocaleID.DEFAULT 请求默认操作系统区域设置。

此示例中的结果可能因操作系统和用户首选项不同而异。

此示例针对列表中的每个区域设置执行以下操作:

  1. 创建 NumberFormatter 对象。
  2. 将同一个值的格式设置为数字、整数和无符号整数,并显示结果。
package { import flash.globalization.NumberFormatter; import flash.globalization.LocaleID; public class NumberFormatterExample extends Sprite { public function NumberFormatterExample():void { var localeNames:Array = [LocaleID.DEFAULT,"ja_JP","en_US","fr_FR"]; for ( var i:int = 0; i < localeNames.length; i++ ) { var nf:NumberFormatter = new NumberFormatter( localeNames[i] as String ); trace('\n\n' + "LocaleID requested: " + nf.requestedLocaleIDName + "; actual: " + nf.actualLocaleIDName); trace( "Last Operation Status:" + nf.lastOperationStatus ); var numberString:String = nf.formatNumber(123456789.19); trace( "Formatted Number:" + numberString); numberString = nf.formatInt(-123456789); trace( "Formatted Int:" + numberString); numberString = nf.formatUint(123456789); trace( "Formatted UInt:" + numberString); } } } }
此示例通过两种不同的方式来分析输入字符串并提取数值。

此示例中的结果可能因操作系统和用户首选项不同而异。

此示例执行以下操作:

  1. 创建 NumberFormatter 对象。
  2. 调用 NumberFormatter.parse() 方法以分析字符串并返回 NumberParseResult 对象。
  3. 调用 NumberFormatter.parseNumber() 方法以分析字符串并返回一个 Number 值。
package { import flash.globalization.NumberFormatter; import flash.globalization.NumberParseResult; import flash.globalization.LastOperationStatus; import flash.globalization.LocaleID; public class NumberFormatterParseExample { public function NumberFormatterParseExample():void { var nf:NumberFormatter = new NumberFormatter( "en_US" ); trace("LocaleID requested: " + nf.requestedLocaleIDName + "; actual: " + nf.actualLocaleIDName); trace( "Last Operation Status:" + nf.lastOperationStatus ); var inputNumberString:String = "123,567,89,0.254"; var parseResult:NumberParseResult = nf.parse(inputNumberString); if ( nf.lastOperationStatus == LastOperationStatus.NO_ERROR ) { trace("Parsed value:" + parseResult.value); } inputNumberString = "-123,567,89,0.254"; var parsedNumber:Number = nf.parseNumber(inputNumberString); if ( nf.lastOperationStatus == LastOperationStatus.NO_ERROR ) { trace("Parsed value:" + parsedNumber); } } } }
NumberFormatter 构造新的 NumberFormatter 对象以根据给定区域设置的约定设置数字的格式。如果 requestedLocaleIDNamenull TypeErrorTypeErrorrequestedLocaleIDNameString确定数字格式时使用的首选区域设置 ID 名称。 构造新的 NumberFormatter 对象以根据给定区域设置的约定设置数字的格式。

此构造函数确定当前操作系统是否支持请求的区域设置 ID 名称。如果不支持,则使用回退区域设置。如果使用了回退区域设置,则 lastOperationStatus 属性表示回退类型,并且 actualLocaleIDName 属性包含回退区域设置 ID 的名称。

要根据用户的当前操作系统首选项进行格式设置,请将 requestedLocaleIDName 参数中的值 LocaleID.DEFAULT 传递给构造函数。

当构造函数成功完成后,将 lastOperationStatus 属性将设置为:

  • LastOperationStatus.NO_ERROR

如果请求的区域设置 ID 名称不可用,则将 lastOperationStatus 属性设置为下列属性之一:

  • LastOperationStatus.USING_FALLBACK_WARNING
  • LastOperationStatus.USING_DEFAULT_WARNING

如果当前操作系统不支持此类,则将 lastOperationStatus 属性将设置为:

  • LastOperationStatus.UNSUPPORTED_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

有关以上列出的警告和 lastOperationStatus 属性其他可能值的详细信息,请参阅 LastOperationStatus 类中的说明。

LocaleIDrequestedLocaleIDNameactualLocaleIDNamelastOperationStatusLastOperationStatus
formatInt 设置 int 值的格式。针对任何内部内存分配问题。 MemoryErrorflash.errors:MemoryError设置了格式的数字字符串。 Stringvalueint要设置格式的 int 值。 设置 int 值的格式。除采用 int 值外,此函数等效于 formatNumber() 方法。如果传入的值过大或过小,例如值大于 1.72e308 或小于 1.72e-308,则此函数返回 0。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusflash.globalization.LastOperationStatus
formatNumber 设置 Number 值格式。如果存在任何内部内存分配问题。 MemoryErrorflash.errors:MemoryError设置了格式的数字字符串。 StringvalueNumber要设置格式的 Number 值。 设置 Number 值格式。

此函数根据格式程序的属性值设置数字格式。如果在创建 numberFormatter 对象后没有修改属性,则根据操作系统提供的由 actualLocaleIDName 标识的区域设置的特定于区域设置的约定为数字设置格式。要自定义格式,可以更改属性以控制设置数字格式的特定方面。

可以使用此函数设置非常大的数字和非常小的量级的数字的格式。但有效位数不得超过 Number 对象提供的精度。不支持科学计数法。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
formatUint 设置 uint 值格式。如果存在任何内部内存分配问题。 MemoryErrorflash.errors:MemoryError设置了格式的数字字符串。 Stringvalueuint单位值。 设置 uint 值格式。除采用 uint 之外,此函数等效于 formatNumber() 方法。如果传入的值过大,例如值大于 1.72e308,则此函数返回 0。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatus
getAvailableLocaleIDNames 列出此类支持的所有区域设置 ID 名称。一个字符串矢量,其中包含此类支持的所有区域设置 ID 名称。 列出此类支持的所有区域设置 ID 名称。

如果当前操作系统不支持此类,此方法返回 null 值。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

parseNumber 解析仅包含数字和可选空白字符的字符串并返回一个数字。如果 parseString 为 null TypeErrorTypeErrorNumberparseStringString 解析仅包含数字和可选空白字符的字符串并返回一个数字。如果字符串不以数字开头或包含除空格之外的不属于数字部分的字符,则此方法返回 NaN。忽略数字前后的空格。空白字符是 Unicode 字符数据库(请参阅 http://www.unicode.org/ucd/)中具有 Space Separator (Zs) 属性的字符。

如果数字位数前面或后面跟着一个加号“+”,这个加号作为非空白字符处理。返回值为 NaN

有关数字解析和有效数字构成部分的更多信息,请参阅解析功能的说明。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatusparse()parseFloat()NationalDigitsType
parse 解析字符串并返回包含解析的元素的 NumberParseResult 对象。如果 parseString 为 null TypeErrorTypeErrorflash.globalization:NumberParseResultparseStringString 解析字符串并返回包含解析的元素的 NumberParseResult 对象。

NumberParseResult 对象包含在输入字符串中找到的第一个数字的值、字符串内数字的起始索引以及字符串中数字之后的第一个字符的索引。

如果字符串中不包含数字,NumberParseResult 的属性值设置为 NaNstartIndexendIndex 属性值设置为十六进制值 0x7fffffff

此函数使用 decimalSeparator 属性的值确定包含小数的数字部分,使用 groupingSeparator 属性确定数字位数内允许的字符,使用 negativeNumberFormat 属性控制负值的表示方法。

下表标识为不同的 NegativeNumberFormat 值解析的字符串的结果:

NegativeNumberFormat输入字符串结果(n)“(123)”或“( 123 )”“-123”-n“-123”或“- 123”“-123”- n“-123”或“- 123”“-123”n-“123-”或“123 -”“-123”n -“123-”或“123 -”“-123”

允许数字和负号或括号之间存有单个空格。

确定有效的数字时,忽略其它属性。具体来说,忽略 digitsType 属性的值,并且数字可以来自 NationalDigitsType 类中枚举的任何数字集。groupingPatternuseGrouping 属性的值不影响数字的解析。

如果字符串中数字的前面或后面有加号“+”,加号被视为不属于数字部分的字符。

此函数不解析包含以科学记数法表示的数字(例如,1.23e40)的字符串。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

以下代码解析字符串中的数字并检索前缀和后缀: var nf:NumberFormatter = new NumberFormatter("fr-FR"); var str:String = "1,56 mètre" var result:NumberParseResult = nf.parse(str); trace(result.value) // 1.56 trace(str.substr(0,result.startIndex)); // "" trace(str.substr(result.startIndex, result.endIndex)); // "1,56" trace(str.substr(result.endIndex)); // " mètre"
lastOperationStatusLastOperationStatusNumberParseResultparseNumber()parseFloat()NationalDigitsType
actualLocaleIDName 此 NumberFormatter 对象使用的实际区域设置 ID 的名称。String 此 NumberFormatter 对象使用的实际区域设置 ID 的名称。

根据操作系统和传递给 Collator() 构造函数的 requestedLocaleIDName 参数的值,该名称有三种可能的值。

  1. 如果请求的区域设置不是 LocaleID.DEFAULT 且操作系统支持该请求的区域设置,则返回的名称与 requestedLocaleIDName 属性相同。
  2. 如果将 LocaleID.DEFAULT 用作构造函数的 requestedLocaleIDName 参数的值,则使用由用户操作系统指定的当前区域设置的名称。LocaleID.DEFAULT 值保留用户在操作系统中的自定义设置。显式值作为 requestedLocaleIDName 参数传递与使用 LocaleID.DEFAULT 所产生的结果不一定相同,即使两个区域设置 ID 名称相同,也是如此。用户可能已在他们的计算机上对区域设置进行了自定义,通过请求显式区域设置 ID 名称(而不是使用 LocaleID.DEFAULT),您的应用程序将不会检索这些自定义设置。

    例如:

    var fmt:NumberFormatter = new NumberFormatter(LocaleID.DEFAULT); var aliName:String = fmt.actualLocaleIDName;

    在上面的示例中,aliName 是与用户当前的操作系统设置对应的区域设置的名称(例如,如果用户的区域设置设为“意大利语-意大利”,则其名称为“it-IT”),而不是“i-default”(LocaleID.DEFAULT 区域设置的名称)。

  3. 如果系统不支持在构造函数中指定的 requestedLocaleIDName,则会提供回退区域设置 ID 名称。

    例如:

    var fmt:NumberFormatter = new NumberFormatter("fr-CA"); var aliName:String = fmt.actualLocaleIDName;

    假设以上示例中的操作系统不支持“fr-CA”(法语-加拿大)区域设置 ID,则使用回退。在这种情况下,回退区域设置 ID 是“fr-FR”(法语-法国)。

LocaleIDrequestedLocaleIDNameNumberFormatter()
decimalSeparator 为包含小数部分的数字设置格式或对其进行解析时使用的小数分隔符字符。String如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the locale and operating system. 为包含小数部分的数字设置格式或对其进行解析时使用的小数分隔符字符。

基于在构造格式程序对象时选择的区域设置对此属性进行最初设置。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

formatInt()formatNumber()formatUInt()lastOperationStatusLastOperationStatus
digitsType 定义为数字设置格式时使用的数字字符集。uint如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the locale and operating system. 定义为数字设置格式时使用的数字字符集。

不同语言和区域使用不同的字符集表示数字 0 到 9。此属性定义要使用的数字集。

此属性值表示十进制数字集中数字 0 的 Unicode 值。在 NationalDigitsType 类中定义此属性的有效值。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatusNationalDigitsType
fractionalDigits 小数分隔符后可以显示的最大位数。int0 小数分隔符后可以显示的最大位数。

数字舍入为由此属性指定的数字位数。舍入方案根据用户的操作系统不同而有所不同。

trailingZeros 属性设置为 true 时,用尾随零来填充数字的小数部分(小数点之后),直到数字长度与此 fractionalDigits 属性的值相匹配。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

trailingZeroslastOperationStatusflash.globalization.LastOperationStatus
groupingPattern 描述分组分隔符在设置了格式的数字字符串中的位置。String如果为此属性分配 null 值。 TypeErrorTypeError 描述分组分隔符在设置了格式的数字字符串中的位置。

useGrouping 属性设置为 true 时,groupingPattern 属性用于定义分组分隔符所用的位置和模式。

分组模式定义为包含由分号分隔并可能以星号结尾的数字的字符串。例如:“3;2;*”。字符串中的每个数字表示组中数字位数。分组分隔符置于每个数字组之前。字符串结尾的星号表示应在设置了格式的字符串的其余部分重复包含这一数字位数的组。如果没有星号,则在设置了格式的字符串的其余部分不会有其他组或分隔符。

字符串中的第一个数字对应于小数分隔符左边的第一组数字。随后的数字定义左边随后组中的数字位数。因此字符串“3;2;*”表示分组分隔符置于第一组 3 位数之后,后面跟 2 位数的组。例如:98,76,54,321

下表提供了使用多种分组模式为数字 123456789.12 设置格式的示例。分组分隔符为逗号,小数分隔符为句点。

分组模式示例格式3;*123,456,789.123;2;*12,34,56,789.123123456,789.12

仅可以定义有限的分组数字个数。在某些操作系统上,分组模式只能包含两个数字加一个星号。其他操作系统最多可以支持四个数字加一个星号。对于不含星号的模式,某些操作系统只支持一个数字,而其它操作系统最多支持三个数字。如果超过分组模式元素的最大数,则忽略其他元素,并按如下所述设置 lastOperationStatus 属性。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

groupingSeparatoruseGroupinglastOperationStatusLastOperationStatus
groupingSeparator 用于分组分隔符的字符或字符串。String如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the locale and operating system. 用于分组分隔符的字符或字符串。

useGrouping 属性设置为 true 时,在设置数字格式时此属性的值用作分组分隔符。基于在构造格式程序对象时选择的区域设置对此属性进行最初设置。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

formatInt()formatNumber()formatUInt()useGroupinglastOperationStatusLastOperationStatus
lastOperationStatus 此 NumberFormatter 对象执行的前一操作的状态。String 此 NumberFormatter 对象执行的前一操作的状态。只要调用构造函数或此类的方法或设置另一个属性,就会设置 lastOperationStatus 属性。有关可能的值,请参阅每种方法的说明。 LastOperationStatusleadingZero 指定当小数分隔符左侧没有整数位时,设置了格式的数字中是否包括前导零。Boolean如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the locale and operating system. 指定当小数分隔符左侧没有整数位时,设置了格式的数字中是否包括前导零。

当此属性设置为 true 时,在设置 -1.0 到 1.0 之间的数值的格式时,小数分隔符左侧包括前导零。当此属性设置为 false 时,不包括前导零。

例如,如果数字是 0.321,并且此属性设置为 true,则在设置了格式的字符串中包括前导零。如果将此属性设置为 false,则不包括前导零。在这种情况下,字符串将只在十进制数字前包括小数分隔符,如 .321

下表提供了几个示例,显示如何基于此属性以及相关的 fractionalDigitstrailingZeros 属性的值来设置数字的格式。

trailingZerosleadingZerofractionalDigits0.120truetrue30.1200.000falsetrue30.120truefalse3.120.000falsefalse3.120

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

formatInt()formatNumber()formatUInt()trailingZeroslastOperationStatusLastOperationStatus
negativeNumberFormat 表示负数的格式设置模式的数值。uint如果指定的值不介于 0 到 4 之间。 ArgumentErrorArgumentErrordependent on the locale and operating system. 表示负数的格式设置模式的数值。此模式定义负号或圆括号相对于设置了格式的数字的数字部分的位置。

下表总结了可能的负数格式。当设置负数的格式时,格式中的负号由 negativeSymbol 属性的值替换,“n”字符由设置了格式的数值替换。

负数格式类型格式0(n)1-n2- n3n-4n -

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

negativeSymbolformatInt()formatNumber()formatUInt()lastOperationStatusLastOperationStatus
negativeSymbol 设置负值的格式时使用的负号。String如果系统无法分配足够的内部内存。 MemoryErrorflash.errors:MemoryError 设置负值的格式时使用的负号。

为小于零的数字设置格式时,将此符号与负数格式一同使用。在不包括负号的负数格式中不使用它(例如,使用圆括号括起的负数)。

此属性设置为构造此格式程序时选择的实际区域。可以使用某个值设置它以覆盖默认设置。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

negativeNumberFormatformatInt()formatNumber()formatUInt()lastOperationStatusLastOperationStatus
requestedLocaleIDName 传递到此 NumberFormatter 对象的构造函数的请求的区域设置 ID 名称。String 传递到此 NumberFormatter 对象的构造函数的请求的区域设置 ID 名称。

如果使用了 LocaleID.DEFAULT 值,则返回的名称将是“i-default”。如果应用了回退区域设置,则实际使用的区域设置可能与请求的区域设置不同。可以使用 actualLocaleIDName 属性检索实际区域设置的名称。

LocaleIDactualLocaleIDNameNumberFormatter()
trailingZeros 指定设置了格式的数字中是否包括尾随零。Boolean如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the locale and operating system. 指定设置了格式的数字中是否包括尾随零。

当此属性设置为 true 时,设置了格式的数字的小数部分包括尾随零,并且位数限制为 fractionalDigits 属性指定的值。当此属性设置为 false 时,则不显示尾随零。

例如,如果数值是 123.4,并且此属性设置为 true,fractionalDigits 的属性设置为 3,则此设置了格式的字符串将显示尾随零,形如 123.400。如果此属性为 false,则不包括尾随零,并且该字符串仅显示小数分隔符以及后面的非零十进制数,形如 123.4

下表提供了几个示例,显示如何基于此属性以及相关的 fractionalDigitsleadingZero 属性的值来设置数值的格式。

trailingZerosleadingZerofractionalDigits0.120truetrue30.1200.000falsetrue30.120truefalse3.120.000falsefalse3.120

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

leadingZerolastOperationStatusLastOperationStatus
useGrouping 当设置数字格式时,启用分组分隔符。Boolean 当设置数字格式时,启用分组分隔符。

useGrouping 属性设置为 true 时,数字进行分组并且使用分组分隔符字符进行分隔。例如:123,456,789.22

useGrouping 属性设置为 false 时,数字不进行分组或分隔。例如:123456789.22

用作组分隔符的符号由 groupingSeparator 属性定义。分组分隔符之间的数字位数由 groupingPattern 属性定义。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

groupingPatterngroupingSeparatorlastOperationStatusLastOperationStatus
DateTimeNameContext DateTimeNameContext 类枚举表示格式上下文(其中使用月份名称或工作日名称)的常量值。Object DateTimeNameContext 类枚举表示格式上下文(其中使用月份名称或工作日名称)的常量值。这些常量用于 DateTimeFormatter 的 getMonthNames()getWeekDayNames() 方法的 context 参数。

该上下文参数只更改这些方法针对特定区域设置和操作系统的结果。对于大多数区域设置,月份名称和工作日名称的列表不会因上下文而不同。

DateTimeFormatter.getMonthNames()DateTimeFormatter.getWeekDayNames()FORMAT 表示在日期格式中使用该日期元素名称。formatString 表示在日期格式中使用该日期元素名称。 STANDALONE 表示在“独立”上下文(不同于其他格式)中使用该日期元素名称。standaloneString 表示在“独立”上下文(不同于其他格式)中使用该日期元素名称。例如,此名称可能只用于显示日历中的月份名称或日期选择器中的工作日名称。
DateTimeNameStyle DateTimeNameStyle 类枚举那些控制设置日期格式时使用的月份名称和工作日名称的长度的常量。Object DateTimeNameStyle 类枚举那些控制设置日期格式时使用的月份名称和工作日名称的长度的常量。将这些常量用于 DateTimeFormatter getMonthNames()getWeekDayNames() 方法的 nameStyle 参数。

LONG_ABBREVIATIONSHORT_ABBREVIATION 可能相同,也可能不同,具体取决于操作系统设置。

DateTimeFormatterFULL 指定月份名称和工作日名称的完整形式或全名样式。fullString 指定月份名称和工作日名称的完整形式或全名样式。示例:Tuesday,November。 LONG_ABBREVIATION 指定月份名称和工作日名称的长缩写样式。longAbbreviationString 指定月份名称和工作日名称的长缩写样式。示例:Tues 表示 Tuesday,Nov 表示 November。 SHORT_ABBREVIATION 指定月份名称和工作日名称的短缩写样式。shortAbbreviationString 指定月份名称和工作日名称的短缩写样式。示例:T 表示 Tuesday,N 表示 November。
CurrencyFormatter CurrencyFormatter 类提供货币值的区分区域设置的格式设置和解析。Object CurrencyFormatter 类提供货币值的区分区域设置的格式设置和解析。

CurrencyFormatter 类使用操作系统提供的数据和功能,设计用于根据特定区域的约定和币种为币值设置格式。货币符号、负号、小数分隔符、分组分隔符、分组模式小数分隔符及其他元素的位置可以视区域设置而定。

如果操作系统支持请求的区域设置,则根据约定和请求的区域设置的默认值设置属性和货币类型。如果请求的区域设置不可用,则根据回退或默认系统区域设置来设置属性,可以使用 actualLocaleIDName 属性检索默认系统区域设置。

由于要使用用户的设置、要使用操作系统提供的格式设置模式,并在请求的区域设置不受支持时使用回退区域设置,因此,即便使用相同的区域设置 ID,对不同的用户显示的格式设置结果也可能不同。

以下示例显示货币金额的格式设置如何随区域设置和币种的不同而变化。此示例中的结果会因操作系统和用户首选项不同而异。

此示例使用下列区域设置:

  • 货币格式设置的默认操作系统区域设置 (LocaleID.DEFAULT)
  • 日语(日本)
  • 英语(美国)
  • 法语(法国)

此示例为该列表中的每个区域设置执行下列操作:

  1. 创建 CurrencyFormatter 对象
  2. 使用 formattingWithCurrencySymbolIsSafe() 方法检查区域设置的默认货币是否是欧元(“EUR”),如果是,则使用该货币符号设置字符串格式。如果不是,则使用 ISO 代码设置字符串格式。
package { import flash.display.Sprite; import flash.globalization.CurrencyFormatter; import flash.globalization.LocaleID; public class CurrencyFormatterExample1 extends Sprite { public function CurrencyFormatterExample1():void { var cf:CurrencyFormatter; var amountWithSymbol:String; var amountWithISOCode:String var localeNames:Array = [LocaleID.DEFAULT, "ja-JP", "en-US", "fr-FR"]; for each (var localeName:String in localeNames) { cf = new CurrencyFormatter(localeName); trace('\n' + "LocaleID requested=" + cf.requestedLocaleIDName + "; actual=" + cf.actualLocaleIDName); trace("Last Operation Status: " + cf.lastOperationStatus ); trace("Currency ISO Code: " + cf.currencyISOCode); if (cf.formattingWithCurrencySymbolIsSafe("EUR")) { amountWithSymbol = cf.format(123456789.19, true); trace("Format using Symbol: "+ amountWithSymbol); } else { amountWithISOCode = cf.format(123456789.19); trace("Format using ISO Code: " + amountWithISOCode); } } } } }
以下示例使用给定区域设置的规则解析货币金额。此示例中的结果可能因操作系统和用户首选项不同而异。

此示例执行下列步骤:

  1. 针对英语(美国)区域设置创建 CurrencyFormatter 对象。
  2. 使用 parse() 方法解析输入字符串。
  3. 显示生成的 CurrencyParseResult 对象的金额和货币字符串值。
package { import flash.display.Sprite; import flash.globalization.CurrencyFormatter; import flash.globalization.CurrencyParseResult; import flash.globalization.LastOperationStatus; import flash.globalization.LocaleID; public class CurrencyFormatterParseExample extends Sprite { public function CurrencyFormatterParseExample() { var cf:CurrencyFormatter = new CurrencyFormatter( "en_US" ); trace("LocaleID requested=" + cf.requestedLocaleIDName + "; actual=" + cf.actualLocaleIDName); trace("Last Operation Status: " + cf.lastOperationStatus ); var inputString:String = "Dollar 123,567,89,0.254"; var result:CurrencyParseResult = cf.parse(inputString); if (cf.lastOperationStatus == LastOperationStatus.NO_ERROR ) { trace("Amount value: " + result.value); trace("Currency string: " + result.currencyString); } } } }
CurrencyFormatter 构造新的 CurrencyFormatter 对象以根据给定区域设置的约定设置表示货币金额的数字格式。如果 requestedLocaleIDName 参数为 nullTypeErrorTypeErrorrequestedLocaleIDNameString确定日期或时间格式时使用的首选区域设置 ID 名称。 构造新的 CurrencyFormatter 对象以根据给定区域设置的约定设置表示货币金额的数字格式。

此构造函数确定当前操作系统是否支持请求的区域设置 ID 名称。如果不支持,则使用回退区域设置。如果使用了回退区域设置,则 lastOperationStatus 属性表示回退类型,并且 actualLocaleIDName 属性包含回退区域设置 ID 的名称。

某些属性,如 currencySymbolcurrencyISOCode,会根据区域设置自动设置。

注意:当使用回退区域设置时,货币属性设置为默认值,所以 currencySymbolcurrencyISOCode 属性可能被设为意外的值。在为货币金额设置格式前,最好先检查 currencySymbolcurrencyISOCode 属性值。

要根据用户的当前操作系统首选项进行格式设置,请将 requestedLocaleIDName 参数中的值 LocaleID.DEFAULT 传递给构造函数。

调用构造函数并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

如果请求的区域设置 ID 名称不可用,则将 lastOperationStatus 属性设置为下列属性之一:

  • LastOperationStatus.USING_FALLBACK_WARNING
  • LastOperationStatus.USING_DEFAULT_WARNING

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

有关以上列出的警告和 lastOperationStatus 属性其他可能值的详细信息,请参阅 LastOperationStatus 类中的说明。

lastOperationStatusrequestedLocaleIDNameactualLocaleIDNameLastOperationStatusLocaleID
format 创建字符串,该字符串表示根据此 CurrencyFormatter 对象的当前属性(包括区域设置、货币符号和货币 ISO 代码)设置格式的货币金额。一个字符串,其中包含设置了格式的货币值。 StringvalueNumber将设置格式以成为货币字符串的数值。 withCurrencySymbolBooleanfalse设置为 false 时,currencyISOCode 属性确定在输出字符串中使用哪种货币字符串或符号。设置为 true 时,输出字符串中使用 currencySymbol 属性的当前值。 创建字符串,该字符串表示根据此 CurrencyFormatter 对象的当前属性(包括区域设置、货币符号和货币 ISO 代码)设置格式的货币金额。

默认情况下,此方法使用 currencyISOCode 属性确定设置格式时使用的货币符号和其他设置。

许多国家/地区和区域使用同一货币符号来表示不同币种。例如,美国、澳大利亚、新西兰、加拿大和墨西哥使用同一种美元符号 ($) 来本地货币值。当设置格式的货币与用户的本地货币不同时,最好使用 ISO 代码作为货币字符串。可使用 formattingWithCurrencySymbolIsSafe() 方法测试要设置格式的货币的 ISO 代码是否与格式程序的 currencyISOCode 属性匹配。

此方法可为极大数量级和极小数量级的数字设置格式。但有效位数不得超过 Number 数据类型提供的精度。

在此示例中,请求的区域设置是 fr-CA 法语(加拿大)。此示例假设用户的操作系统支持此区域设置,因此不使用回退区域设置。对于 fr-CA,默认货币是 ISO 代码为 CAD 的加拿大元。因此,使用默认值设置货币格式时,使用 CAD 作为货币符号。当 withCurrencySymbol 参数设置为 true 时,使用 currencySymbol 属性为货币金额设置格式。 var cf:CurrencyFormatter = new CurrencyFormatter("fr-CA"); trace(cf.actualLocaleIDName); // "fr-CA" trace(cf.currencyISOCode); // "CAD" trace(cf.currencySymbol); // "$" trace(cf.format(1254.56)); // "1 254,56 CAD" trace(cf.format(1254.56, true)); // "1 254,56 $"

第二个示例显示使用默认用户的区域设置为以加拿大元表示的货币金额设置格式的方法。formattingWithCurrencySymbolIsSafe() 方法用于测试用户的默认货币是否为加拿大元,如果是,则使用此格式方法并将 withCurrencySymbol 参数设置为 true。否则,使用更具说明性的货币符号将货币设置为加拿大元。此示例显示当默认区域设置是法语(加拿大)或英语(美国)时如何为货币设置格式。

var cf:CurrencyFormatter = new CurrencyFormatter(LocaleID.DEFAULT); if (cf.formattingWithCurrencySymbolIsSafe("CAD")) { trace(cf.actualLocaleIDName); // "fr-CA French (Canada)" trace(cf.format(1254.56, false)); // "1 254,56 $" } else { trace(cf.actualLocaleIDName); // "en-US English (USA)" cf.setCurrency("CAD", "C$") trace(cf.format(1254.56, true)); // "C$ 1,254.56" }
currencySymbolcurrencyISOCodeformattingWithCurrencySymbolIsSafe()lastOperationStatusLastOperationStatus
formattingWithCurrencySymbolIsSafe 确定是否可使用当前指定的货币符号为货币金额设置格式。如果 requestedISOCode 参数为 null。 TypeErrorTypeError如果 currencyISOCode 属性与 requestedISOCode 参数相匹配,为 true;否则为 falseBooleanrequestedISOCodeString三个字母的 ISO 4217 币种代码(例如,美元为 USD,欧元为 EUR)。必须包含从 A 到 Z 的三个大写字母。 确定是否可使用当前指定的货币符号为货币金额设置格式。

许多区域和国家/地区使用同一货币符号。此方法可用于确保避免使用存在歧义的货币符号,或使用由于使用回退区域设置而导致的与预期不同的货币符号或 ISO 代码。

此方法的一个常见用例是确定显示本地货币符号(如果将金额的格式设置为用户的默认货币)还是显示更加具体的 ISO 代码字符串(如果将金额的格式设置为与用户的默认货币不同的货币)。

此方法将 requestedISOCode 参数与当前 currencyISOCode 属性做比较,当两个字符串相等时返回 true,否则返回 false。当两个字符串相等时,使用 format() 方法并将 withCurrencySymbol 参数设置为 true 会导致设置了格式的货币值字符串具有该区域设置的唯一货币符号。如果该方法返回 false,则使用 format() 方法并将 withCurrencySymbol 参数设置为 true 会导致使用存在歧义或不正确的货币符号。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

currencySymbolcurrencyISOCodelastOperationStatusLastOperationStatus
getAvailableLocaleIDNames 列出此类支持的所有区域设置 ID 名称。一个字符串矢量,其中包含此类支持的所有区域设置 ID 名称。 列出此类支持的所有区域设置 ID 名称。

如果当前操作系统不支持此类,此方法返回 null 值。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

parse 将字符串解析为货币金额和货币符号。如果 inputString 参数为 null。 TypeErrorTypeError一个包含数值和货币符号或字符串的 CurrencyParseResult 对象。 flash.globalization:CurrencyParseResultinputStringString要解析的输入字符串。 将字符串解析为货币金额和货币符号。

此解析算法使用 decimalSeparator 属性的值确定数值的整数部分和小数部分。它使用 negativeCurrencyFormatpositiveCurrencyFormat 属性的值确定与货币金额相关的货币符号或字符串的位置。对于负数金额,negativeCurrencyFormat 属性的值确定负号的位置以及是否使用圆括号。

如果输入字符串中的货币符号、负号和数字的顺序与 negativeCurrencyFormatpositiveCurrencyFormat 属性标识的模式不匹配,则:

  1. 返回的 CurrencyParseResult 对象的 value 属性设置为 NaN
  2. 返回的 CurrencyParseResult 对象的 currencyString 属性设置为 null
  3. 设置 lastOperationStatus 属性以表示解析失败。

输入字符串中可以包括空格字符,解析期间将忽略空格字符。

即使没有货币符号解析也可成功。没有验证与货币符号对应的字符串部分。如果没有货币符号或字符串,返回的 CurrencyParseResult 对象中的 currencyString 属性设置为空字符串。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

decimalSeparatornegativeCurrencyFormatpositiveCurrencyFormatCurrencyParseResultlastOperationStatusLastOperationStatus
setCurrency 设置 CurrencyFormatter 对象的 currencyISOCode 和 currencySymbol 属性。如果 currencyISOCodecurrencySymbol 参数为 null。 TypeErrorTypeErrordependent on the actual locale and operating system currencyISOCodeString三个字母的 ISO 4217 币种代码(例如,美元为 USD,欧元为 EUR)。必须包含从 A 到 Z 的三个大写字母。 currencySymbolString 为货币值设置格式时要使用的货币符号或字符串。这可以是空字符串。 设置 CurrencyFormatter 对象的 currencyISOCodecurrencySymbol 属性。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,currencyISOCodecurrencySymbol 属性不会进行修改,并且 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

currencyISOCodecurrencySymbollastOperationStatusLastOperationStatus
actualLocaleIDName 此 CurrencyFormatter 对象使用的实际区域设置 ID 的名称。String 此 CurrencyFormatter 对象使用的实际区域设置 ID 的名称。

根据操作系统和传递给 CurrencyFormatter() 构造函数的 requestedLocaleIDName 参数的值,该名称有三种可能的值。

  1. 如果请求的区域设置不是 LocaleID.DEFAULT 且操作系统支持该请求的区域设置,则返回的名称与 requestedLocaleIDName 属性相同。
  2. 如果将 LocaleID.DEFAULT 用作构造函数的 requestedLocaleIDName 参数的值,则使用由用户操作系统指定的当前区域设置的名称。LocaleID.DEFAULT 值保留用户在操作系统中的自定义设置。显式值作为 requestedLocaleIDName 参数传递与使用 LocaleID.DEFAULT 所产生的结果不一定相同,即使两个区域设置 ID 名称相同,也是如此。用户可能已在他们的计算机上对区域设置进行了自定义,通过请求显式区域设置 ID 名称(而不是使用 LocaleID.DEFAULT),您的应用程序将不会检索这些自定义设置。

    例如:

    var fmt:CurrencyFormatter = new CurrencyFormatter(LocaleID.DEFAULT); var aliName:String = fmt.actualLocaleIDName;

    在上面的示例中,aliName 是与用户当前的操作系统设置对应的区域设置的名称(例如,如果用户的区域设置设为“意大利语-意大利”,则其名称为“it-IT”),而不是 "i-default"LocaleID.DEFAULT 区域设置的名称)。

  3. 如果系统不支持在构造函数中指定的 requestedLocaleIDName,则会提供回退区域设置 ID 名称。

    例如:

    var fmt:CurrencyFormatter = new CurrencyFormatter("fr-CA"); var aliName:String = fmt.actualLocaleIDName;

    假设以上示例中的操作系统不支持“fr-CA”(法语-加拿大)区域设置 ID,则使用回退。在这种情况下,回退区域设置 ID 是“fr-FR”(法语-法国)。

LocaleIDrequestedLocaleIDNameCurrencyFormatter()
currencyISOCode 正在使用的实际区域设置的三个字母的 ISO 4217 币种代码。Stringdependent on the actual locale and operating system 正在使用的实际区域设置的三个字母的 ISO 4217 币种代码。

当使用 withCurrencySymbol 参数设置为 falseformat() 方法设置货币金额格式时,此代码用于确定货币符号或字符串。

此属性由构造函数基于所使用的实际区域设置进行初始化。当使用回退区域设置时,此属性反映回退区域设置的首选币种代码、默认币种代码。

format()setCurrency()currencySymbol
currencySymbol 正在使用的实际区域设置的货币符号或字符串。Stringdependent on the actual locale and operating system 正在使用的实际区域设置的货币符号或字符串。

使用 withCurrencySymbol 参数设置为 trueformat() 方法设置货币金额格式时,此属性用作货币符号。

此属性由构造函数基于所使用的实际区域设置进行初始化。当使用回退区域设置时,此属性反映回退区域设置的首选货币符号、默认货币符号。

format()setCurrency()formattingWithCurrencySymbolIsSafe()currencyISOCode
decimalSeparator 为包含小数部分的货币金额设置格式或对其进行解析时使用的小数分隔符字符。String如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the actual locale and operating system 为包含小数部分的货币金额设置格式或对其进行解析时使用的小数分隔符字符。

基于在构造格式程序对象时选择的区域设置对此属性进行最初设置。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

format()lastOperationStatusLastOperationStatus
digitsType 定义为货币金额设置格式时使用的数字字符集。uint如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the actual locale and operating system 定义为货币金额设置格式时使用的数字字符集。

不同语言和区域使用不同的字符集表示数字 0 到 9。此属性定义要使用的数字集。

此属性值表示十进制数字集中数字 0 的 Unicode 值。在 NationalDigitsType 类中定义此属性的有效值。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatusLastOperationStatusNationalDigitsType
fractionalDigits 小数分隔符后可以显示的最大位数。int0 小数分隔符后可以显示的最大位数。

数字舍入为由此属性指定的数字位数。舍入方案根据用户的操作系统不同而有所不同。

trailingZeros 属性设置为 true 时,用尾随零来填充数字的小数部分(小数点之后),直到数字长度与此 fractionalDigits 属性的值相匹配。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

trailingZeroslastOperationStatusLastOperationStatus
groupingPattern 描述分组分隔符在设置了格式的货币金额字符串中的位置。String如果为此属性分配 null 值。 TypeErrorTypeError 描述分组分隔符在设置了格式的货币金额字符串中的位置。

useGrouping 属性设置为 true 时,groupingPattern 属性用于定义分组分隔符所用的位置和模式。

分组模式定义为包含由分号分隔并可能以星号结尾的数字的字符串。例如:“3;2;*”。字符串中的每个数字表示组中数字位数。分组分隔符置于每个数字组之前。字符串结尾的星号表示应在设置了格式的字符串的其余部分重复包含这一数字位数的组。如果没有星号,则在设置了格式的字符串的其余部分不会有其他组或分隔符。

字符串中的第一个数字对应于小数分隔符左边的第一组数字。随后的数字定义左边随后组中的数字位数。因此字符串“3;2;*”表示分组分隔符置于第一组 3 位数之后,后面跟 2 位数的组。例如:98,76,54,321

下表显示了使用多种分组模式为货币金额 123456789.12 设置格式的示例。分组分隔符为逗号、小数分隔符为句点,美元符号 ($) 是货币符号。

分组模式示例格式3;* $123,456,789.123;2;*$12,34,56,789.123$123456,789.12

仅可以定义有限的分组数字个数。在某些操作系统上,分组模式只能包含两个数字加一个星号。其他操作系统最多可以支持四个数字加一个星号。对于不含星号的模式,某些操作系统只支持一个数字,而其它操作系统最多支持三个数字。如果超过分组模式元素的最大数,则忽略其他元素,并按如下所述设置 lastOperationStatus 属性。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

groupingSeparatoruseGroupinglastOperationStatusLastOperationStatus
groupingSeparator 用于分组分隔符的字符或字符串。String如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the actual locale and operating system 用于分组分隔符的字符或字符串。

useGrouping 属性设置为 true 时,在设置货币金额格式时此属性的值用作分组分隔符。基于在构造格式程序对象时选择的区域设置对此属性进行最初设置。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

format()useGroupinglastOperationStatusLastOperationStatus
lastOperationStatus 此 CurrencyFormatter 对象执行的最近操作的状态。String 此 CurrencyFormatter 对象执行的最近操作的状态。只要调用构造函数或此类的方法或设置另一个属性,就会设置 lastOperationStatus 属性。有关可能的值,请参阅每种方法的说明。 LastOperationStatusleadingZero 指定当小数分隔符左侧没有整数位时,设置了格式的货币金额中是否包括前导零。Boolean如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the actual locale and operating system 指定当小数分隔符左侧没有整数位时,设置了格式的货币金额中是否包括前导零。

当此属性设置为 true 时,在设置 -1.0 到 1.0 之间的数值的格式时,小数分隔符左侧包括前导零。当此属性设置为 false 时,不包括前导零。

例如,如果货币金额是 0.321,并且此属性设置为 true,则设置了格式的字符串中包括前导零。如果将此属性设置为 false,则不包括前导零。在这种情况下,字符串中将仅包括小数分隔符及后跟的十进制数字,形如 $.321

下表提供了几个示例,显示如何基于此属性以及相关的 fractionalDigitstrailingZeros 属性的值来设置货币金额的格式。

trailingZerosleadingZerofractionalDigits0.120truetrue3$0.120$0.000falsetrue3$0.12$0truefalse3$.120$.000falsefalse3$.12$0

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

format()lastOperationStatusLastOperationStatustrailingZeros
negativeCurrencyFormat 表示负值货币金额的格式设置模式的数值。uint如果指定的值不介于 0 到 15 之间。 ArgumentErrorArgumentErrordependent on the actual locale and operating system 表示负值货币金额的格式设置模式的数值。此模式定义货币符号和负号或圆括号相对于货币金额的数字部分的位置。

此属性的值必须是在下表中定义的常量之一。

下表总结了负值货币金额的可能的格式设置模式。在使用 format() 方法为货币金额设置格式时:

  • “¤”符号由 currencyISOCodecurrencySymbol 属性的值替换,视传递到 format() 方法的 withCurrencySymbol 参数值而定;
  • “-”字符由 negativeNumberSymbol 属性的值替换;
  • “n”字符由传递到 format() 方法的货币金额值替换。
负值货币格式类型格式化图案0(¤n)1-¤n2¤-n3¤n-4(n¤)5-n¤6n-¤7n¤-8-n ¤9-¤ n10n ¤-11¤ n-12¤ -n13n- ¤14(¤ n)15(n ¤)

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

format()currencySymbolnegativeSymbollastOperationStatusLastOperationStatus
negativeSymbol 设置负值货币金额的格式时使用的负号。String如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the actual locale and operating system 设置负值货币金额的格式时使用的负号。

为小于零的货币金额设置格式时,将此符号与负值货币格式一同使用。在不包括负号的负值货币格式中不使用它(例如,使用圆括号括起的负值货币金额)。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

format()negativeCurrencyFormatlastOperationStatusLastOperationStatus
positiveCurrencyFormat 表示正值货币金额的格式设置模式的数值。uint如果指定的值不介于 0 到 3 之间。 ArgumentErrorArgumentErrordependent on the actual locale and operating system 表示正值货币金额的格式设置模式的数值。此格式定义货币符号相对于货币金额数值部分的位置。

此属性的值必须是在下表中定义的常量之一。

下表总结了正值货币金额的可能的格式设置模式。在使用 format() 方法为货币金额设置格式时:

  • “¤”符号由 currencyISOCodecurrencySymbol 属性的值替换,视传递到 format() 方法的 withCurrencySymbol 参数值而定;
  • “n”字符由传递到 format() 方法的货币金额值替换。
正值货币格式类型格式化图案0¤n12¤ n3n ¤

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

currencySymbolformat()lastOperationStatusLastOperationStatus
requestedLocaleIDName 传递到此 CurrencyFormatter 对象的构造函数的请求的区域设置 ID 名称。String 传递到此 CurrencyFormatter 对象的构造函数的请求的区域设置 ID 名称。

如果使用了 LocaleID.DEFAULT 值,则返回的名称将是“i-default”。如果应用了回退区域设置,则实际使用的区域设置可能与请求的区域设置不同。可以使用 actualLocaleIDName 属性检索实际区域设置的名称。

LocaleIDactualLocaleIDNameCurrencyFormatter()
trailingZeros 指定设置了格式的货币金额中是否包括尾随零。Boolean如果为此属性分配 null 值。 TypeErrorTypeErrordependent on the actual locale and operating system 指定设置了格式的货币金额中是否包括尾随零。

当此属性设置为 true 时,设置了格式的数字的小数部分包括尾随零,并且位数限制为 fractionalDigits 属性指定的值。当此属性设置为 false 时,则不显示尾随零。

例如,如果货币金额是 123.4,并且此属性设置为 true,fractionalDigits 的属性设置为 3,则此设置了格式的字符串中将显示结尾零,形如 $123.400。如果此属性为 false,则不包括尾随零,并且该字符串仅显示小数分隔符以及后面的非零十进制数,形如 $123.4

下表提供了几个示例,显示如何基于此属性以及相关的 fractionalDigitsleadingZero 属性的值来设置货币金额的格式。

trailingZerosleadingZerofractionalDigits0.120truetrue3$0.120$0.000falsetrue3$0.12$0truefalse3$.120$.000falsefalse3$.12$0

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

leadingZerolastOperationStatusLastOperationStatus
useGrouping 当设置货币金额格式时,启用分组分隔符。Boolean 当设置货币金额格式时,启用分组分隔符。

useGrouping 属性设置为 true 时,数字进行分组并且使用分组分隔符字符进行分隔。例如:$123,456,789

useGrouping 属性设置为 false 时,数字不进行分组或分隔。例如:$123456789

groupingSeparator 属性定义用作分组分隔符的符号。groupingPattern 属性定义分组分隔符之间的位数。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

groupingPatterngroupingSeparatorlastOperationStatusLastOperationStatus
Collator Collator 类提供区分区域设置的字符串比较功能。Object Collator 类提供区分区域设置的字符串比较功能。

此类使用操作系统提供的字符串比较服务。这些比较随创建类实例时提供的区域设置标识符的不同而不同。ActionScript 使用 Unicode 字符集存储字符串。布尔型字符串比较运算符(==、!=、<、<=、>、>=)使用 Unicode 代码点进行比较。在多数情况下,生成的排序顺序与特定语言和区域的约定不匹配,因此不应该用于对用户界面中显示的字符串进行排序。而此类中的比较方法提供了符合这些约定的顺序。

以下是一些示例,其中排序顺序随语言的不同而不同:

  • 在英语中,小写 a 在大写 A 之前,而大写 A 在小写 b 之前。
  • 在瑞典语中,ö 在 z 之后,而在德语中,ö 在 o 之后
  • 在传统西班牙语中,ch 是一个排在 c 和 d 之间的字符
  • 法语中的重音符号根据最后一个重音符号而不是第一个重音符号排序:例如,cote < côte < coté < côté 而不是 cote < coté < côte < côté

甚至在同一语言和区域内,排序顺序也可以根据使用情况有所不同。例如,在德语中,电话簿中的姓名与词典中的词的排序顺序不同。在中文和日语中,表意字排序有多种方式:即按读音或按字形中使用的表意字字根和笔画数。在西班牙语和格鲁吉亚语中,现代排序和传统排序之间存在差异。

此类中的比较方法提供了两种主要使用模式。Collator() 构造函数的 initialMode 参数控制这些模式。默认“排序”模式适用于将显示给最终用户的排序项目。在此模式中,比较更为严格,以确保在其他方面相同的项目以一致的方式排序。例如,大写字母和小写字母不作为相同内容进行比较。在“匹配”模式中,比较相对宽松。例如,在此模式中大写和小写字母会被视为相同。以下是一个演示这两种模式的示例:

var sortingCollator:Collator = new Collator("en-US", CollatorMode.SORTING); var words:Array = new Array("Airplane" , "airplane", "boat", "Boat"); words.sort(sortingCollator.compare); trace(words); var matchingCollator:Collator = new Collator("en-US", CollatorMode.MATCHING); if (matchingCollator.equals("Car", "car")) { trace("The words match!"); }

即使如上所示向构造函数提供区域设置 ID 参数,排序行为也可能因用户的操作系统设置而随用户变化,还可能在请求的区域设置不受支持时,随是否使用回退区域设置而不同。

以下示例显示随区域设置而变化的排序结果。此示例执行下列步骤:
  1. 循环访问区域设置 ID 名称数组,包括操作系统的默认区域设置 ID(由 LocaleID.DEFAULT 指定)
  2. 使用“排序”模式(默认)为每个区域设置 ID 名称创建 Collator 对象。
  3. 显示请求的和实际的区域设置 ID 名称以及 lastOperationStatus 属性的值,以便能知道是否使用了回退区域设置。
  4. 使用每个 collator 对数据数组排序并显示排序结果。各区域设置的排序结果不同。
package { import flash.globalization.Collator; import flash.globalization.LocaleID; public class CollatorExample1 { public var col:Collator; public function CollatorExample1():void { var localeNames:Array = [LocaleID.DEFAULT, "de-DE", "sv-SE", "fr-FR", "lt-LT", "es-ES"]; var testSortData:Array = [ "y ", "i ", "k ", // Latvian "acxa ", "acha ", "adxa ", // es_traditional "n ", "ö ", "o ", "z ", "vu ", "wo ", // sw "däd ", "daed ", // de "öf ", "of ", // de_dictionary "côte ", "coté " // fr ]; for each (var localeName:String in localeNames) { col = new Collator(localeName); trace("LocaleID requested: " + col.requestedLocaleIDName + "; actual: " + col.actualLocaleIDName); trace("Last Operation Status: " + col.lastOperationStatus ); var result:Array = testSortData.sort(col.compare); trace ("sorted data: " + result); } } } }
以下示例显示了使用 Collator 对象控制字符串比较的行为。此示例执行下列步骤:
  1. 使用“匹配”模式为用户的默认区域设置创建 Collator 对象。
  2. 交替将 Collator.ignoreDiacritics 属性设置为 falsetrue
  3. 比较多组包含音调符号和大小写字符的字符串。
  4. 显示当 Collator.ignoreDiacriticsCollator.ignoreCase 属性更改时比较如何变化。
package { import flash.display.Sprite; import flash.globalization.Collator; import flash.globalization.CollatorMode; import flash.globalization.LocaleID; public class CollatorExample2 extends Sprite { public var col:Collator; public var testMatchData:Array = ["cote", "Cote", "côte", "coté"]; public var wordToMatch:String = "Cote"; public function CollatorExample2() { col = new Collator( LocaleID.DEFAULT, CollatorMode.MATCHING ); trace("LocaleID requested: " + col.requestedLocaleIDName + "; actual: " + col.actualLocaleIDName); trace("Last Operation Status: " + col.lastOperationStatus ); trace('\n' + "ignoreCase = " + col.ignoreCase); trace("ignoreDiacritics = " + col.ignoreDiacritics); compareString(testMatchData, wordToMatch) // All variations of the word cote match col.ignoreDiacritics = false; trace('\n' + "ignoreDiacritics = false"); compareString(testMatchData, wordToMatch) // Variations with different diacritics will not match col.ignoreCase = false; trace('\n' + "ignoreCase = false"); compareString(testMatchData, wordToMatch) // Variations with different case will not match } private function compareString(stringArray:Array, keyword:String):void { for each(var s:String in stringArray) { if(col.equals(s, keyword)) { trace(keyword + " = " + s); } } } } }
Collator 构造新的 Collator 对象,以根据指定的区域设置的约定提供字符串比较。requestedLocaleIDName 参数为 null 时。 TypeErrorTypeErrorrequestedLocaleIDName 参数包含无效值时。 ArgumentErrorArgumentErrorrequestedLocaleIDNameString此 Collator 对象要使用的 StringinitialModeStringsorting用于指定初始排序模式的字符串值。默认值是 CollatorMode.SORTING。有关可用模式的列表,请参阅 CollatorMode 类。 构造新的 Collator 对象,以根据指定的区域设置的约定提供字符串比较。

如果当前操作系统不支持在 requestedLocaleIDName 参数中传递到的区域设置 ID,则确定一个回退区域设置。如果使用了回退,则设置 lastOperationStatus 属性以表示回退类型。

initialMode 参数设置供常规使用的多种排序选项。它可以设置为下列值之一:

  • CollatorMode.SORTING:设置用于常规语言排序(例如对显示给最终用户的文本字符串列表进行排序)的排序选项。在此模式下,进行字符串比较时考虑大写和小写字母、重音符号及其它特定于区域设置的区别。
  • CollatorMode.MATCHING:设置供常规使用(例如确定两个字符串是否等效)的排序选项。在此模式下,进行字符串比较时忽略大写和小写字母、重音符号等区别。

以下是使用带有区域设置 ID“en-US”(美国英语)和 CollatorMode.SORTING 选项的 Collator 创建的排序列表的示例:

A一个ÄäAEaeÆæBbCcç

如上所示,所有字符均视为具有不同值,但按语言顺序排序。

以下是使用带有区域设置 ID“en-US”(美国英语)和 CollatorMode.MATCHING 选项的 Collator 创建的排序列表的示例:

A a Ä ä A aAE ae Æ æB b B bC c ç C c

图例:在比较或排序期间,同一行的字符视为等效字符。例如,认为“a”(U+0040 = LATIN SMALL LETTER A) 和“Ä”(U+00C4 = LATIN CAPITAL LETTER A WITH DIAERESIS) 等效。

如上所示,某些字符按语言顺序排序并被视为具有相同字符值。

要更细致的控制排序顺序,可以更改 Collator.ignoreCaseCollator.ignoreDiacritics 等 collator 属性。

作为参考,此处提供了一个使用不支持区域设置识别的标准 Array.sort() 完成排序的相应示例:

AAEBC一个aebcÄÆäæç

如上所示,所有字符均以 Unicode 数值顺序简单排序。在语言方面其意义并不大。

要使用用户的当前操作系统首选项,请将 requestedLocaleIDName 参数中的静态值 LocaleID.DEFAULT 传递到构造函数。

有些区域设置具有多种排序顺序变体。例如,在德语中,一种排序顺序用于电话号码簿,另一种排序顺序用于词典。中文中,通常对字提供字符音译为拼音的支持。可以通过在 requestedLocaleIDName 参数中传递给构造函数的字符串中包含“排序”关键字来选择这些不同的排序顺序。

var germanPhonebook:LocaleID = new LocaleID("de-DE@collation=phonebook"); var chinesePinyin:LocaleID = new LocaleID("zh-Hant@collation=pinyin");

排序字符串的可能值如下所示,括号中显示了所影响的语言:

排序字符串说明standard每种语言的默认顺序。 phonebook适用于电话簿样式顺序(用于德语)。pinyin适用于拉丁字符和 CJK 字符的拼音顺序;也就是基于逐字符音译为拼音的、适用于 CJK 字符的顺序。(用于中文)traditional适用于传统样式排序(用于西班牙语) stroke拼音顺序适用于拉丁语,笔顺适用于 CJK 字符(用于中文)direct(用于印地语) big5han拼音顺序适用于拉丁语,big5 字符集顺序适用于 CJK 字符。(用于中文) gb2312han 拼音顺序适用于拉丁语,gb2312han 字符集顺序适用于 CJK 字符。(用于中文) unihan拼音顺序适用于拉丁语,Unihan 字根比划顺序适用于 CJK 字符。(用于中文)

如果主机平台不支持请求的排序类型,则使用回退并设置 lastOperationStatus 属性,以表示选择了回退。可以使用 actualLocaleIDName 属性来确定用作回退的值,如下面的示例所示:

var collator:Collator = new Collator("fr-FR"); if (collator.lastOperationStatus == LastOperationStatus.USING_FALLBACK_WARNING) { trace ("Using fallback locale: " + collator.actualLocaleIDName); }

构造函数成功后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

当请求的区域设置 ID 不可用时,则将 lastOperationStatus 属性设置为下列属性值之一:

  • LastOperationStatus.USING_FALLBACK_WARNING
  • LastOperationStatus.USING_DEFAULT_WARNING

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

有关上面列出的警告以及 lastOperationStatus 的其他可能值的详细信息,请参阅 LastOperationStatus 类中的说明。

CollatorModeLastOperationStatusLocaleIDlastOperationStatusrequestedLocaleIDNameactualLocaleIDName
compare 比较两个字符串并返回一个整数值,表示第一个字符串是小于、等于还是大于第二个字符串。当必需的参数为空时。 TypeErrorTypeError当参数包含无效值时。 ArgumentErrorArgumentError一个整数值,表示第一个字符串是小于、等于或大于第二个字符串。
  • 如果返回值为负,则表示 string1 小于 string2
  • 如果返回值是零,则表示 string1 等于 string2
  • 如果返回值为正,则表示 string1 大于 string2
int
string1String第一个比较字符串。 string2String第二个比较字符串。
比较两个字符串并返回一个整数值,表示第一个字符串是小于、等于还是大于第二个字符串。比较将使用适用于 Collator() 构造函数中指定的区域设置 ID 的排序顺序规则。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

equals()lastOperationStatusLastOperationStatus
equals 比较两个字符串并返回表示字符串是否相等的布尔值。当必需的参数为空时。 TypeErrorTypeError当参数包含无效值时。 ArgumentErrorArgumentError一个布尔值,表示字符串相等 (true) 还是不相等 (false)。 Booleanstring1String第一个比较字符串。 string2String第二个比较字符串。 比较两个字符串并返回表示字符串是否相等的布尔值。比较将使用适用于 Collator() 构造函数中指定的区域设置 ID 的排序顺序规则。

调用此方法并成功完成后,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

compare()lastOperationStatusLastOperationStatus
getAvailableLocaleIDNames 列出此类支持的所有区域设置 ID 名称。一个字符串矢量,其中包含此类支持的所有区域设置 ID 名称。 列出此类支持的所有区域设置 ID 名称。

如果当前操作系统根本不支持此类,此方法返回 null 值。

actualLocaleIDName 此 Collator 对象使用的实际区域设置 ID 的名称。String 此 Collator 对象使用的实际区域设置 ID 的名称。

根据操作系统和传递给 Collator() 构造函数的 requestedLocaleIDName 参数的值,该名称有三种可能的值。

  1. 如果请求的区域设置不是 LocaleID.DEFAULT 且操作系统支持该请求的区域设置,则返回的名称与 requestedLocaleIDName 属性相同。
  2. 如果将 LocaleID.DEFAULT 用作构造函数的 requestedLocaleIDName 参数的值,则使用由用户操作系统指定的当前区域设置的名称。LocaleID.DEFAULT 值保留用户在操作系统中的自定义设置。显式值作为 requestedLocaleIDName 参数传递与使用 LocaleID.DEFAULT 所产生的结果不一定相同,即使两个区域设置 ID 名称相同,也是如此。用户可能已在他们的计算机上对区域设置进行了自定义,通过请求显式区域设置 ID 名称(而不是使用 LocaleID.DEFAULT),您的应用程序将不会检索这些自定义设置。

    例如:

    var fmt:Collator = new Collator(LocaleID.DEFAULT); var aliName:String = fmt.actualLocaleIDName;

    在上面的示例中,aliName 是与用户当前的操作系统设置对应的区域设置的名称(例如,如果用户的区域设置设为“意大利语-意大利”,则其名称为“it-IT”),而不是“i-default”(LocaleID.DEFAULT 区域设置的名称)。

  3. 如果系统不支持在构造函数中指定的 requestedLocaleIDName,则会提供回退区域设置 ID 名称。

    例如:

    var fmt:Collator = new Collator("fr-CA"); var aliName:String = fmt.actualLocaleIDName;

    假设以上示例中的操作系统不支持“fr-CA”(法语-加拿大)区域设置 ID,则使用回退。在这种情况下,aliName 变量包含回退区域设置 ID“fr-FR”(法语-法国)。

LocaleIDrequestedLocaleIDName
ignoreCase 当此属性设置为 true 时,完全相同的字符串和仅字母大小写不同的字符串比较结果为相等。Boolean<code>true</code> when the <code>Collator()</code> constructor's <code>initialMode</code> parameter is set to <code>Collator.MATCHING</code>. <code>false</code> when the <code>Collator()</code> constructor's <code>initialMode</code> parameter is set to Collator.SORTING. 当此属性设置为 true 时,完全相同的字符串和仅字母大小写不同的字符串比较结果为相等。例如,当 ignoreCase 属性设置为 true 时,compare("ABC", "abc") 将返回 true

字符串的大小写转换遵守指定的区域设置的规则。

ignoreCase 属性为 false 时,大小写字符不相等。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的一个常量。

lastOperationStatuscompare()equals()LastOperationStatus
ignoreCharacterWidth 当此属性为 true 时,某些全角和半角形式的中文和日文字符比较结果为相等。Booleanfalse 当此属性为 true 时,某些全角和半角形式的中文和日文字符比较结果为相等。

为与中文和日文字符集的现有标准兼容,Unicode 为某些全角和半角形式的字符提供字符代码。例如,当 ignoreCharacterWidth 属性设置为 true 时,compare("Aア", "Aア") 返回 true

如果将 ignoreCharacterWidth 属性设置为 false,则全角和半角形式的字符不相等。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

lastOperationStatuscompare()equals()LastOperationStatus
ignoreDiacritics 当此属性设置为 true 时,使用相同基本字符,但重音符号或其它音调符号不同的字符串,比较结果为相等。Booleanfalse 当此属性设置为 true 时,使用相同基本字符,但重音符号或其它音调符号不同的字符串,比较结果为相等。例如,当 ignoreDiacritics 属性设置为 true 时,compare("coté", "côte") 返回 true

ignoreDiacritics 设置为 false 时,带有音调符号或重音符号的基本字符被视为不相等。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

lastOperationStatuscompare()equals()LastOperationStatus
ignoreKanaType 当此属性设置为 true 时,正在使用的仅 kana 字符类型不同的字符串被视为相等。Booleanfalse 当此属性设置为 true 时,会将区别仅在于使用了不同的 kana 字符类型的字符串视为相等。例如,当 ignoreKanaType 属性设置为 true 时,compare("カナ", "かな") 返回 true

如果将 ignoreKanaType 设置为 false,则引用相同音节的平假名和片假名字符不相等。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

lastOperationStatuscompare()equals()LastOperationStatus
ignoreSymbols 当此属性设置为 true 时,排序或匹配时将忽略空格、货币符号、数学符号和其它类型符号等符号字符。Booleanfalse 当此属性设置为 true 时,排序或匹配时将忽略空格、货币符号、数学符号和其它类型符号等符号字符。例如,当 ignoreSymbols 属性设置为 true 时,“OBrian”、“O'Brian”和“O Brian”字符串都被视为相等。

如果 ignoreSymbols 属性为 false,则字符串比较将考虑符号字符。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

lastOperationStatuscompare()equals()LastOperationStatus
lastOperationStatus 此 Collator 对象执行的最近操作的状态。String 此 Collator 对象执行的最近操作的状态。只要调用构造函数或此类的一个方法,或设置一个属性,都会设置 lastOperationStatus。有关可能值的信息,请参阅每种方法下的说明。 LastOperationStatusnumericComparison 控制如何在进行字符串比较期间处理嵌入到字符串的数值。Booleanfalse 控制如何在进行字符串比较期间处理嵌入到字符串的数值。

numericComparison 属性设置为 true 时,比较方法将出现在字符串中的数字转换为数值以供比较。

当此属性设置为 false 时,比较时将把数字视为字符代码,并根据指定区域设置中对字符排序所用的规则对它们进行排序。

例如,对于区域设置 ID“en-US”,当此属性为 true 时,字符串“version1”、“version10”和“version2”按以下顺序排序:version1 < version2 < version10。

对于“en-US”,当此属性为 false 时,上述同样的字符串按以下顺序排序:version1 < version10 < version2。

为此属性分配了值并且未引发错误或警告时,将 lastOperationStatus 属性设置为:

  • LastOperationStatus.NO_ERROR

否则,将 lastOperationStatus 属性设置为 LastOperationStatus 类中定义的其中一个常量。

lastOperationStatuscompare()equals()LastOperationStatus
requestedLocaleIDName 传递到此 Collator 对象的构造函数的请求的区域设置 ID 名称。String 传递到此 Collator 对象的构造函数的请求的区域设置 ID 名称。

如果使用了 LocaleID.DEFAULT 值,则返回的名称将是“i-default”。如果应用了回退区域设置,则实际使用的区域设置可能与请求的区域设置不同。可以使用 actualLocaleIDName 属性检索实际区域设置的名称。

LocaleIDactualLocaleIDName