14.4.格式化日期和时间

问题
我要自定义日期和时间的显示格式
解决办法
使用Date.toString( ), 或者自定义方法DateFormat.format( )
讨论
Date.toString( )方法返回Date对象的字符串类型数值,比如:
+展开
-ActionScript
// 显示: Tue Jan 5 14:25:20 GMT-0800 2010
trace((new Date( )).toString( ));

如果忽略toString()方法,ActionScript 也会自动调用toString( )方法,结果是一样的,比如下面的例子:
+展开
-ActionScript
// 也显示: Tue Jan 5 14:25:20 GMT-0800 2010
trace(new Date( ));

Date类本身并没有内建一些格式化日期和时间的方法,必须自己去实现了,当然创建Date对象时可通过一些字符串的组合实现,看下面的例子:
+展开
-ActionScript
var example:Date = new Date(2010, 0, 5, 10, 25);
var formatted:String = (example.month + 1) + "/" + example.fullYear;
trace(formatted); // 显示: 1/2010

这样的话,每次格式化日期和时间都要自己写一大段代码了,ascb.util.DateFormat 对象提供了一个format( ) 方法实现了类似功能,DateFormat 类是一个自定义类,专门设计来通过掩码格式化日期和时间。掩码可以是任意字符组合。

当创建DateFormat对象时,传递一个掩码字符串作为参数,下面的例子创建了一个DateFormat对象输出标准的美国日期格式:
+展开
-ActionScript
var formatter:DateFormat = new DateFormat("m/d/Y");

一旦创建了DateFormat对象,调用format()方法,通过指定的掩码格式化Date实例:
+展开
-ActionScript
var example:Date = new Date(2010, 0, 5, 10, 25);
var formatter:DateFormat = new DateFormat("m/d/Y");
trace(formatter.format(example)); // 显示: 01/05/2010

可以通过mask属性的get和set方法操作mask字符串,也就是说可以改变已存在的DateFormat 对象的mask属性:
+展开
-ActionScript
var example:Date = new Date(2010, 0, 5, 10, 25);
var formatter:DateFormat = new DateFormat("m/d/Y");
trace(formatter.format(example)); // 显示: 01/05/2010
formatter.mask = "m/d/Y h:i a";
trace(formatter.format(example)); // 显示: 01/05/2010 10:25 am

用单引号围绕的字符串可原样输出,这样就可以自定义格式化形式了:
+展开
-ActionScript
var example:Date = new Date(2010, 0, 5, 10, 25);
var formatter:DateFormat = new DateFormat("m/d/Y at h:i a");
trace(formatter.format(example)); // 显示: 01/05/2010 am31 10:25 am
formatter.mask = "m/d/Y 'at' h:i a";
trace(formatter.format(example)); // 显示: 01/05/2010 at 10:25 am

加支付宝好友偷能量挖...


评论(0)网络
阅读(81)喜欢(0)flash/flex/fcs/AIR