您的位置:首页 > 移动开发 > Objective-C

flex dataGrid 日期格式转换

2010-12-26 09:16 148 查看
flex dataGrid 日期格式转换

第一:拉个DateFormatter 控件
<mx:DateFormatter id="df" formatString="YYYY-MM-DD"/>

第二:写个函数
   private function formatStart(item:Object,column:DataGridColumn):String{
           return df.format(item.startDate);// df是一个DateFormatter,这里格式化item数据中的startDate字段
   }

第三:
.........
   <mx:DataGridColumn headerText="endDate" dataField="endDate" labelFunction="formatStart"/>
.........

有了这三个,显示数据已经没有问题了。其实也可以这样用,如在函数中

regTime.text=df.format(memberResult.registeTime);//返回的格林治时间格式化为YYYY-MM-DD格式

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
       layout="vertical"
       verticalAlign="middle"
       backgroundColor="white" viewSourceURL="srcview/index.html">

   <mx:Script>
       <![CDATA[
           import mx.utils.ObjectUtil;

      private function formatStart(item:Object,column:DataGridColumn):String{
           return df.format(item.dob);// df是一个DateFormatter,这里格式化item数据中的startDate字段
      }

       ]]>
   </mx:Script>

   <mx:ArrayCollection id="arrColl">
       <mx:source>
           <mx:Array>
               <mx:Object name="User A" dob="04/14/1980" />
               <mx:Object name="User B" dob="01/02/1975" />
               <mx:Object name="User C" dob="12/30/1977" />
               <mx:Object name="User D" dob="10/27/1968" />
           </mx:Array>
       </mx:source>
   </mx:ArrayCollection>

  <mx:DateFormatter id="df" formatString="YYYY-MM-DD"/>//formatString="YYYY-MM-DD" 精确到年月日,精确到时分秒则是YYYY-MM-DD H:NN:SS

   <mx:DataGrid id="dataGrid" dataProvider="{arrColl}">
       <mx:columns>
           <mx:DataGridColumn dataField="name"
                   headerText="Name:" />

           <mx:DataGridColumn dataField="dob"
                   headerText="Date of birth:"
                    labelFunction="formatStart"/>
       </mx:columns>
   </mx:DataGrid>

</mx:Application>

<mx:DateFormatter id="df" formatString="YYYY-MM-DD"/>

formatString格式定义:

formatString属性
formatString:String   []

掩码模式。

使用特定的大写字母组成模式 String,如 YYYY/MM。

DateFormatter模式 String 既可以包含模式字母,也可以包含其它文本。要形成有效的模式 String,只需要一个模式字母。

下表描述了有效的模式字母:
 
Y年份. 如果有两个模式字母,则年份将截断为两位数字;否则,年份将以四位数字形式出现。年份可以用零补齐,如下面一组示例中第三个示例所示:
YY = 05

YYYY = 2005

YYYYY = 02005

M一年中的月份。其格式取决于下列条件:
如果有一个模式字母,则格式将设置为一位或两位数值。

如果有两个模式字母,则格式将设置为两位数值。

如果有三个模式字母,则格式将设置为短文本。

如果有四个模式字母,则格式将设置为完整文本。

示例:
M = 7

MM= 07

MMM=Jul

MMMM= July

D一月中的日期。尽管对于日期而言使用单个字母模式的字符串就有效,但通常使用两个字母模式的字符串。示例:
D=4

DD=04

DD=10

E星期中的天。其格式取决于下列条件:
如果有一个模式字母,则格式将设置为一位或两位数值。

如果有两个模式字母,则格式将设置为两位数值。

如果有三个模式字母,则格式将设置为短文本。

如果有四个模式字母,则格式将设置为完整文本。

示例:
E = 1

EE = 01

EEE = Mon

EEEE = Monday

Aam/pm 标记。
J一天中的小时数 (0-23)。
H一天中的小时数 (1-24)。
Kam/pm 中的小时数 (0-11)。
Lam/pm 中的小时数 (1-12)。
N小时中的分钟数。示例:
N = 3

NN = 03

S分钟中的秒数。示例:
SS = 30

其它文本。可以在模式字符串中添加其它文本,以进一步设置字符串格式。可以使用标点、数字和所有小写字母。应该避免使用大写字母,因为大写字母可能被解读为模式字母。示例:
EEEE, MMM. D, YYYY at L:NN A = Tuesday, Sept. 8, 2005 at 1:26 PM

得到当前时间和时间加两天

Calendar beginDate= new GregorianCalendar();
beginDate.add(GregorianCalendar.DATE,2);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息