Apache Flex 4.16.1 API Reference | All Packages | All Classes | Index | Frames No Frames |
DateTimeFormatter

Package | spark.formatters
Class | public class DateTimeFormatter
Inheritance | DateTimeFormatter GlobalizationBase AdvancedStyleClient flash.events.EventDispatcher
Implements | IFormatter

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The DateTimeFormatter class provides locale-sensitve formatting for a `Date` object.

This class is a wrapper class around the flash.globalization.DateTimeFormatter class. Therefore, the locale-specific formatting functionality and the month names, day names and the first day of the week are provided by the flash.globalization.DateTimeFormatter. However, this DateTimeFormatter class can be used in MXML declarations, uses the locale style for the requested Locale ID name, and has methods and properties that are bindable.

The flash.globalization.DateTimeFormatter class uses the underlying operating system for the formatting functionality and to supply the locale-specific data. On some operating systems, the flash.globalization classes are unsupported, on these systems, this wrapper class provides fallback functionality.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The `<s:DateTimeFormatter>` tag inherits all of the tag attributes of its superclass and adds the following tag attributes:

      <s:DateTimeFormatter
        Properties
        dateStyle="long"
        dateTimePattern="EEEE, MMMM dd, yyyy h:mm:ss a"
        errorText="null"
        timeStyle="long"
        useUTC="false"
      />

View the examples

See also

flash.globalization.DateTimeFormatter

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | actualLocaleIDName : String [override] [read-only] The name of the actual locale ID used by this class object. | DateTimeFormatter
|  | className : String [read-only] The name of the component class. | AdvancedStyleClient
|  | dateStyle : String The date style for this instance of the DateTimeFormatter. | DateTimeFormatter
|  | dateTimePattern : String The pattern string used by the DateTimeFormatter object to format dates and times. | DateTimeFormatter
|  | errorText : String String returned by the format() method when an error occurs. | DateTimeFormatter
|  | id : String The identity of the component. | AdvancedStyleClient
|  | inheritingStyles : Object An object containing the inheritable styles for this non-visual style client instance. | AdvancedStyleClient
|  | lastOperationStatus : String [override] [read-only] The status of the most recent operation that this class object performed. | DateTimeFormatter
|  | moduleFactory : IFlexModuleFactory A module factory is used as context for finding the style manager that controls the styles for this non-visual style client instance. | AdvancedStyleClient
|  | nonInheritingStyles : Object The beginning of this component's chain of non-inheriting styles. | AdvancedStyleClient
|  | styleDeclaration : CSSStyleDeclaration The style declaration that holds the inline styles declared by this object. | AdvancedStyleClient
|  | styleManager : IStyleManager2 [read-only] Returns the StyleManager instance used by this component. | AdvancedStyleClient
|  | styleName : Object The source of this object's style values. | AdvancedStyleClient
|  | styleParent : IAdvancedStyleClient A component's parent is used to evaluate descendant selectors. | AdvancedStyleClient
|  | timeStyle : String The time style for this instance of the DateTimeFormatter. | DateTimeFormatter
|  | useUTC : Boolean A boolean flag to control whether the local or the UTC date and time values are used when the formatting a date. | DateTimeFormatter

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | DateTimeFormatter() Constructs a new DateTimeFormatter object to format dates and times according to the conventions of the specified locale and the provided date and time formatting styles. | DateTimeFormatter
|  | clearStyle(styleProp:String):void Deletes a style property from this component instance. | AdvancedStyleClient
|  | format(value:Object):String Formats a display string for an object that specifies a date in either the user's local time or UTC time. | DateTimeFormatter
|  | getAvailableLocaleIDNames():Vector.<String> [static] Lists all of the locale ID names supported by this class. | DateTimeFormatter
|  | getClassStyleDeclarations():Array Returns an Array of CSSStyleDeclaration objects for the type selector that applies to this component, or null if none exist. | AdvancedStyleClient
|  | getFirstWeekday():int Returns an integer corresponding to the first day of the week for this locale and calendar system. | DateTimeFormatter
|  | getMonthNames(nameStyle:String = full, context:String = standalone):Vector.<String> Retrieves a list of localized strings containing the month names for the current calendar system. | DateTimeFormatter
|  | getStyle(styleProp:String):* [override] Gets a style property that has been set anywhere in this component's style lookup chain. | GlobalizationBase
|  | getWeekdayNames(nameStyle:String = full, context:String = standalone):Vector.<String> Retrieves a list of localized strings containing the names of weekdays for the current calendar system. | DateTimeFormatter
|  | hasCSSState():Boolean Returns true if currentCSSState is not null. | AdvancedStyleClient
|  | initialized(document:Object, id:String):void The initialized method is called when this class or a class that extends this class is used in an MXML declaration. | AdvancedStyleClient
|  | matchesCSSState(cssState:String):Boolean Returns true if cssState matches currentCSSState. | AdvancedStyleClient
|  | matchesCSSType(cssType:String):Boolean Determines whether this instance is the same as, or is a subclass of, the given type. | AdvancedStyleClient
|  | notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void Propagates style changes to the children of this style client instance. | AdvancedStyleClient
|  | regenerateStyleCache(recursive:Boolean):void Sets up the internal style cache values so that the getStyle() method functions. | AdvancedStyleClient
|  | registerEffects(effects:Array):void Registers the EffectManager as one of the event listeners for each effect event. | AdvancedStyleClient
|  | setStyle(styleProp:String, newValue:*):void Sets a style property on this component instance. | AdvancedStyleClient
|  | styleChanged(styleProp:String):void Detects changes to style properties. | AdvancedStyleClient
|  | stylesInitialized():void Flex calls the stylesInitialized() method when the styles for a component are first initialized. | AdvancedStyleClient

Protected Methods
Show Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | setDeferredStyles():void | AdvancedStyleClient

Events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | change | The change event is generated whenever the locale style is changed or another property is set that would cause the format of a number to change or cause updates to the other values available through this class. | GlobalizationBase

Styles
Hide Inherited Styles
Show Inherited Styles

| Style | Description | Defined By
--- | --- | --- | ---
|  | locale | Type: String CSS Inheritance: yes The locale identifier that specifies the language, region, script and optionally other related tags and keys. See also http://www.unicode.org/reports/tr35/ | GlobalizationBase

Property Detail

actualLocaleIDName | property

`actualLocaleIDName:String` [read-only] [override]

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The name of the actual locale ID used by this class object. This is the locale that is used to access the formatting data and functionality from the operating system.

If the locale that was set by the `locale` style is not available, then the value of the `actualLocaleIDName` is different from the value of the `locale` style. It indicates the fallback locale that is being used. If the locale style was set to `LocaleID.DEFAULT` the name of the locale specified by the user's operating system is used.

This property can be used as the source for data binding.

Implementation
`public function get actualLocaleIDName():String`

See also

flash.globalization.DateTimeFormatter.actualLocaleIDName
DateTimeFormatter()

dateStyle | property |

`dateStyle:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The date style for this instance of the DateTimeFormatter. The date style is used to retrieve a predefined time and locale specific formatting pattern from the operating system. When formatting a date, the `locale` style, the `timeStyle` and the `dateStyle` properties determine the format of the date. The date style value can be set in the following two ways: assigning a value to either the `dateStyle` property or the `dateTimePattern` property.

The possible for this property are defined by the flash.globalization.DateTimeStyle class. Possible values for the `dateStyle` property are:

- `DateTimeStyle.LONG`
- `DateTimeStyle.MEDIUM`
- `DateTimeStyle.SHORT`
- `DateTimeStyle.NONE`
- `DateTimeStyle.CUSTOM`

If the `dateTimePattern` property is assigned a value, as a side effect, the `dateStyle` property is set to `DateTimeStyle.CUSTOM`

The default value is ``DateTimeStyle.LONG``.

This property can be used as the source for data binding.

Implementation
`public function get dateStyle():String`
`public function set dateStyle(value:String):void`
Throws

| `ArgumentError` — if the assigned value is not a valid `DateTimeStyle` constant or is `DateTimeStyle.CUSTOM`.
| `TypeError` — if the `dateStyle` or is set to `null`.

See also

dateStyle
dateTimePattern
lastOperationStatus
flash.globalization.DateTimeStyle
DateTimeFormatter()

dateTimePattern | property |

`dateTimePattern:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The pattern string used by the DateTimeFormatter object to format dates and times.

This pattern can be set in one of two ways:

1. By setting the `dateStyle` and `timeStyle` properties.
2. By setting the `dateTimePattern` property.

If this property is assigned a value directly, as a side effect, the current time and date styles are overridden and set to the value `DateTimeStyle.CUSTOM`.

For a description of the pattern syntax, please see the `flash.globalization.DateTimeFormatter.setDateTimePattern()` method.

The default value is `"EEEE, MMMM dd, yyyy h:mm:ss a"`.

This property can be used as the source for data binding.

Implementation
`public function get dateTimePattern():String`
`public function set dateTimePattern(value:String):void`

See also

dateStyle
timeStyle

errorText | property |

`errorText:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

String returned by the `format()` method when an error occurs.

If `errorText` is non-null and an error occurs while formatting a date, the format method will return the string assigned to this property.

For example:

          var dtf:DateTimeFormatter = new DateTimeFormatter();
          dtf.setStyle("locale", "en-US");
          dtf.errorText = "----"
          trace(dtf.format("abc"));  // ----

The default value is `null`.

This property can be used as the source for data binding.

Implementation
`public function get errorText():String`
`public function set errorText(value:String):void`

See also

spark.globalization.LastOperationStatus

lastOperationStatus | property |

`lastOperationStatus:String` [read-only] [override]

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The status of the most recent operation that this class object performed. The `lastOperationStatus` is set whenever the constructor or a method of this class is called, or when a property is set. For the possible values see the description under each method.

This property can be used as the source for data binding.

Implementation
`public function get lastOperationStatus():String`

timeStyle | property |

`timeStyle:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The time style for this instance of the DateTimeFormatter. The time style is used to retrieve a predefined time and locale specific formatting pattern from the operating system. When formatting a date, the `locale` style, the `timeStyle` and the `dateStyle` properties determine the format of the date. The time style value can be set in the following two ways: assigning a value to either the `timeStyle` property or the `dateTimePattern` property.

The value of the property are defined by the flash.globalization.DateTimeStyle class. Possible values for the `timeStyle` property are:

- `DateTimeStyle.LONG`
- `DateTimeStyle.MEDIUM`
- `DateTimeStyle.SHORT`
- `DateTimeStyle.NONE`
- `DateTimeStyle.CUSTOM`

If the `dateTimePattern` property is assigned a value, as a side effect, the dateStyle property is set to `DateTimeStyle.CUSTOM`

The default value is ``DateTimeStyle.LONG``.

This property can be used as the source for data binding.

Implementation
`public function get timeStyle():String`
`public function set timeStyle(value:String):void`
Throws

| `ArgumentError` — if the assigned value is not a valid `DateTimeStyle` constant or is `DateTimeStyle.CUSTOM` .
| `TypeError` — if the `dateStyle` or `timeStyle` parameter is null.

See also

dateStyle
dateTimePattern
flash.globalization.DateTimeStyle
DateTimeFormatter()

useUTC | property |

`useUTC:Boolean`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

A boolean flag to control whether the local or the UTC date and time values are used when the formatting a date. If `useUTC` is set to `true` then the UTC values are used. If the value is set to `false`, then the date time values of the operating system's current time zone is used.

The default value is `false`.

This property can be used as the source for data binding.

Implementation
`public function get useUTC():Boolean`
`public function set useUTC(value:Boolean):void`

See also

format()
Constructor Detail

DateTimeFormatter | () | Constructor

`public function DateTimeFormatter()`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Constructs a new `DateTimeFormatter` object to format dates and times according to the conventions of the specified locale and the provided date and time formatting styles.

The locale for this class is supplied by the locale style. The locale style can be set in several ways:

- By using the class in an MXML declaration and inheriting the locale from the document that contains the declaration.
Example:

          <fx:Declarations>
                 <s:DateTimeFormatter id="df" />
          </fx:Declarations>

- By using an MXML declaration and specifying the locale value in the list of assignments.
Example:

          <fx:Declarations>
              <s:DateTimeFormatter id="df_Japanese" locale="ja-JP" />
          </fx:Declarations>

- Calling the setStyle method. For example:

            df.setStyle("locale", "ja-JP")

- Inheriting the style from a `UIComponent` by calling the UIComponent's `addStyleClient()` method.

If the `locale` style is not set by one of the above techniques, the instance of this class will be added as a `StyleClient` to the `topLevelApplication` and will therefore inherit the `locale` style from the `topLevelApplication` object when the `locale` dependent property getter or `locale` dependent method is called.

Most of the properties of this class are automatically set based on the locale style. If the locale style is changed, any properties that have not been explicitly set will also be updated based on the new locale. Note that the actual locale that is used is specified by the actualLocaleIDName property.

See also

actualLocaleIDName
lastOperationsStatus
Method Detail

format | () | method

`public function format(value:Object):String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Formats a display string for an object that specifies a date in either the user's local time or UTC time.

A `Date` object has two sets of date and time values, those in the user's local time (`date, day, fullYear, hours, minutes, month,` and `seconds`) and those in UTC time (`dateUTC, dayUTC, fullYearUTC, hoursUTC, minutesUTC, monthUTC,` and `secondsUTC`). The boolean property `useUTC` controls which set of date and time components are used when formatting the date. The formatting will be done using the conventions of the locale as set by the `locale` style property and the `dateStyle` and `timeStyle` properties, or the `dateTimePattern`, specified for this `DateTimeFormatter` instance.

If there is an error when formatting, due to an illegal input value or other error, by default the `format()` method will return `null`. However if the `errorText` property is non-null, then the value of the `errorText` property will be returned. The `lastOperationStatus` property will be set to indicate the error that occurred.

Parameters

| `value:Object` — A `Date` value to be formatted. If the object is not a `Date` then it will be converted to a date using the `Date()` constructor.

Returns

| `String` — A formatted string representing the date or time value.

See also

dateStyle
timeStyle
Date
dateTimePattern
DateTimeFormatter

getAvailableLocaleIDNames | () | method |

`public static function getAvailableLocaleIDNames():Vector.<String>`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Lists all of the locale ID names supported by this class. This is a list of locales supported by the operating system, not a list of locales that the ResourceManager has resources for.

Returns

| `Vector.<String>` — A vector of strings containing all of the locale ID names supported by this class and operating system.

getFirstWeekday | () | method |

`public function getFirstWeekday():int`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Returns an integer corresponding to the first day of the week for this locale and calendar system. A value of 0 corresponds to Sunday, 1 corresponds to Monday and so on, with 6 corresponding to Saturday.

Returns

| `int` — An integer corresponding to the first day of the week for this locale and calendar system.

getMonthNames | () | method |

`public function getMonthNames(nameStyle:String = full, context:String = standalone):Vector.<String>`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Retrieves a list of localized strings containing the month names for the current calendar system. The first element in the list is the name for the first month of the year.

Parameters

| `nameStyle:String` (default = `full`)`` — Indicates the style of name string to be used. Valid values are: `DateTimeNameStyle.FULL` `DateTimeNameStyle.LONG_ABBREVIATION` `DateTimeNameStyle.SHORT_ABBREVIATION`
| `context:String` (default = `standalone`)`` — A code indicating the context in which the formatted string will be used. This context will only make a difference for certain locales. Valid values are: `DateTimeNameContext.FORMAT` `DateTimeNameContext.STANDALONE`

Returns

| `Vector.<String>` — A vector of localized strings containing the month names for the current locale (specified by the locale style), name style and context. The first element in the vector, at index 0, is the name for the first month of the year; the next element is the name for the second month of the year; and so forth.

Throws

| `TypeError` — if the `nameStyle` or `context` parameter is null.

See also

flash.globalization.DateTimeNameContext
flash.globalization.DateTimeNameStyle

getWeekdayNames | () | method |

`public function getWeekdayNames(nameStyle:String = full, context:String = standalone):Vector.<String>`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Retrieves a list of localized strings containing the names of weekdays for the current calendar system. The first element in the list represents the name for Sunday.

Parameters

| `nameStyle:String` (default = `full`)`` — Indicates the style of name string to be used. Valid values are: `DateTimeNameStyle.FULL` `DateTimeNameStyle.LONG_ABBREVIATION` `DateTimeNameStyle.SHORT_ABBREVIATION`
| `context:String` (default = `standalone`)`` — A code indicating the context in which the formatted string will be used. This context only applies for certain locales where the name of a month changes depending on the context. For example, in Greek the month names are different if they are displayed alone versus displayed along with a day. Valid values are: `DateTimeNameContext.FORMAT` `DateTimeNameContext.STANDALONE`

Returns

| `Vector.<String>` — A vector of localized strings containing the month names for the current locale (specified by the locale style), name style and context. The first element in the vector, at index 0, is the name for Sunday; the next element is the name for Monday; and so forth.

Throws

| `TypeError` — if the `nameStyle` or `context` parameter is null.

See also

flash.globalization.DateTimeNameContext
flash.globalization.DateTimeNameStyle
Examples
DateTimeFormatterExample.mxml

    <?xml version="1.0" encoding="utf-8"?>
    <!--

      Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

    -->
    <!--  Sample program for spark.formatters.DateTimeFormatter -->
    <s:Application
        xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx">

        <fx:Declarations>
            <s:DateTimeFormatter id="dateTimeFormatter"/>
        </fx:Declarations>

        <fx:Script>
            <![CDATA[
                import mx.collections.ArrayCollection;

                private static const dateTimeStyleMenuItems:ArrayCollection
                = new ArrayCollection(["long", "medium", "short", "none"]);
            ]]>
        </fx:Script>

        <s:Form>
            <s:FormItem label="Input Locale ID Name">
                <s:HGroup>
                    <s:TextInput id="inputLocaleIDName"/>
                    <!-- Upon button click, sets the locale style on the document
                    UI component. The formatter will inherit this style. -->
                    <s:Button click="setStyle('locale', inputLocaleIDName.text);"
                              label="Apply"/>
                </s:HGroup>
                <s:Label text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
            </s:FormItem>
            <s:FormItem label="Date Style">
                <s:DropDownList id="dateStyle" requireSelection="true"
                                change="dateTimeFormatter.dateStyle = dateTimeStyleMenuItems[dateStyle.selectedIndex]"
                                dataProvider="{dateTimeStyleMenuItems}"/>
            </s:FormItem>
            <s:FormItem label="Time Style">
                <s:DropDownList id="timeStyle" requireSelection="true"
                                change="dateTimeFormatter.timeStyle = dateTimeStyleMenuItems[timeStyle.selectedIndex]"
                                dataProvider="{dateTimeStyleMenuItems}"/>
            </s:FormItem>
            <s:FormItem label="Input Date">
                <s:TextInput id="inputDate" text="{new Date().toString()}"/>
            </s:FormItem>
            <s:FormItem label="Actual Locale ID Name">
                <s:Label text="{dateTimeFormatter.actualLocaleIDName}"/>
            </s:FormItem>
            <s:FormItem label="Formatted Result">
                <s:Label id="uiFormattedDate"
                         text="{dateTimeFormatter.format(inputDate.text)}"/>
            </s:FormItem>
        </s:Form>
    </s:Application>

Wed Nov 15 2017, 09:50 AM +01:00