Flex中的日期转换

1、字符串类型的时间转换为Date类型的时间。
方法一:
查看帮助文档,发现DateFormatter类中有相应的方法,但是方法是受保护的,不能直接使用。
parseDateString () 方法  
protected static function parseDateString(str:String):Date
将已设置为 String 格式的日期转换为 Date 对象。月份名称和日期名称必须符合 mx.formatters.DateBase 中的名称。

使用方法:
写一个类继承自DateFormatter类。
import mx.formatters.DateFormatter;

//字符串类型的时间转换为Date类型时间
public class StringConvertDate extends DateFormatter
{
 public static function convertToDate(str:String):Date{
         return DateFormatter.parseDateString(str);
 }

}

调用:
createTime必须为有效的String格式的日期。
// "2008/12/19 09:30:55"
var createTime:String = "2010-4-4 18:19:12";
var svrCreateDate:Date=StringConvertDate.convertToDate(createTime);

方法二:
import mx.controls.DateField;
var createTime:String = "2010-4-4 18:19:12";
var date = createTime.substring(0,8);
var dt:Date = new Date();
var hours:Number = dt.hours;
var minutes:Number = dt.minutes;
var seconds:Number = dt.seconds;
var svrCreateDate:Date = DateField.stringToDate(date,"YYYY-MM-DD");
svrCreateDate.setHours(hours,minutes,seconds);
Alert.show(svrCreateDate);

2、Date类型的时间转换为字符串类型的时间。
方法一:
format () 方法
override public function format(value:Object):String
根据用于设置日期格式的 String 或 Date 对象生成日期格式化的 String。formatString 属性用于确定输出 String 的格式。如果无法设置 value 的格式,则会返回一个空 String,并将对错误的描述写入 error 属性。
将Date类型的对象转换为指定格式的字符串。参数可以是String类型的时间或者Date类型的时间,返回的是String类型的时间。


<!-- 定义时间类型的显示格式 formatString:"YYYY-MM-DD JJ:NN:SS"、"YYYY-MM-DD HH:NN:SS"等等,详细参考帮助文档-->
<mx:DateFormatter id="dateFormatter" formatString="YYYY年MM月DD日 JJ:NN:SS" />

//定义用于时间显示的回调函数
private function dateLabel(item:Object,column:DataGridColumn):String{
 return dateFormatter.format(item[column.dataField]);
}

在DataGrid中调用,labelFunction="dateLabel" :
<mx:DataGridColumn headerText="创建时间" dataField="createdate" labelFunction="dateLabel" />

方法二:
其实与上面是一样的,上面是标签的形式。
//生成格式化对象
var dateFormatter:DateFormatter=new DateFormatter();
//设定格式
dateFormatter.formatString=”YYYY-MM-DD JJ:NN:SS”;
//执行格式化
dateFormatter.format(time);


方法三:
DateField.dateToString()方法参数只能接受Y、M、D。也就是说只能处理年月日,不能处理小时分钟秒。
//svrCreateDate为Date类型的日期。
import mx.controls.DateField;
var helloDate:String = DateField.dateToString(svrCreateDate, "DD/MM/YYYY");
var helloDate2:String = DateField.dateToString(svrCreateDate, "YYYY-MM-DD");

 

--------------------------------------------------------------------------------------------------

private var formatterString:String = "YYYY-MM-DD JJ:NN:SS";
   
private function dateFormat(date:Date):String
{  
 var dateFormatter:DateFormatter = new DateFormatter();
 dateFormatter.formatString = formatterString;
 return dateFormatter.format(date);
}

var serverTime:Date = DateFormatter.parseDateString(ApplicationManager.serverTime.toString());

var expireDate:Date = DateField.stringToDate(expireDateStr, "YYYYMMDD");

 

你可能感兴趣的:(Date,function,String,datagrid,Flex,import)