1、 获取系统当前时间
var 变量名:Date=new Date();
var today:Date=new Date(); //获取系统当前时间
trace(today);
//显示Tue Sep 14 16:13:02 GMT+0800 2010
由于Flex是客户端的程序,所以获取的时间也为客户端时间。
2、 获取日期中的特定值
Date类中的每部分特定值都存储于特定的属性中,用户只要读取相应的属性就能获取日期中的特定的值。
属性名 | 说明 |
fullYear | 表示4位数的年份,如2010 |
date | 表示月中的第几天,范围从1~31 |
month | 表示月份,范围从0~11 |
day | 表示是星期几,范围从0~6 |
hours | 表示小时,范围从0~23 |
minutes | 表示分钟,范围从0~59 |
seconds | 表示秒,范围从0~59 |
milliseconds | 表示毫秒,范围从0~999 |
var today:Date=new Date();
trace(today.milliseconds);
3、 日期的格式化输出
使用DateFormat类中的Format方法可以方便地格式化日期和时间。DateFormat类在ascb.util包中。例如:
var formatter:DateFormat=
new DateFormat("m月/d/Y年 H:i");
trace(formatter.format(today));
//显示:09月/14/2010年 18:12
DateFormat类中的特定值标识
标识符 | 说明 |
a | 小写a.m或p.m,如p.m |
A | 大写A.M或P.M,如A.M |
d | 一月中的几号(有前导),如01 |
D | 星期几简写,如Sun |
F | 月份,如January |
g | 小时(12小时制),如1 |
G | 小时(24小时制),如1 |
h | 小时(12小时制,有前导),如01 |
H | 小时(24小时制,有前导),如01 |
i | 分钟(有前导),如01 |
j | 一月中的几号,如1 |
l | 星期几,如Sunday |
m | 数字月份(有前导),如01 |
M | 月份简写,如Jan |
n | 数字月份,如1 |
s | 秒(有前导),如01 |
t | 一月中的第几天,如31 |
w | 一周中的第几天,如0 |
y | 2位数年份 |
Y | 4位数年份 |
时间格式中可另外加入字符串,例如:
var formatter:DateFormat=
new DateFormat("’北京时间:’m月/d/Y年 H:i");
trace(formatter.format(today));
//北京时间: 09月/14/2010年 19:08
4、 使用计时器
var 变量名:Timer = new Timer(时间间隔);
下面是一个倒计时的例子:
public var i2:int = 7;
protected function onTimer(event:TimerEvent):void
{
i2=i2-1;
if(i2<0) i2=7;
lblTime.text=String(i2);
}
protected function button2_clickHandler(event:MouseEvent):void
{
var timer:Timer=new Timer(1000);
timer.addEventListener(TimerEvent.TIMER,onTimer);
timer.start();
}
<s:Button x="51" y="280" label="倒计时" click="button2_clickHandler(event)"/>
<s:Label x="240" y="280" text="7" id="lblTime" fontSize="34" width="38" height="41"/>
效果是从7依次减到0,然后循环;如果希望只执行7次。只需这样修改:
var timer:Timer=new Timer(1000,7);
5、 计算日期特定值的间隔
Date类以毫秒为单位存储,故时差间隔仍为毫秒。DateUtilities类提供了求特定值间隔的方法。
var d1:Date=new Date();
//在第d1的基础上添加1年2个月3天4小时
var d2:Date=DateUtilities.addTo(d1,1,2,3,4);
var s:String=
DateUtilities.elapsedYears(d2,d1)+"年"+
DateUtilities.elapsedMonths(d2,d1)+"月"+
DateUtilities.elapsedDays(d2,d1)+"天"+
DateUtilities.elapsedHours(d2,d1)+"小时";
trace(s);
显示:1年14月429天10300小时
addTo()方法第一个参数为基准日期,从第二个参数起,分别表示要增加的年、月、日、时、分、秒、毫秒。
DateUtilities类中的求间隔方法还可以有第三个参数,其值只有true或false,表示是否返回相对值。
var s:String=
DateUtilities.elapsedYears(d2,d1,true)+"年"+
DateUtilities.elapsedMonths(d2,d1,true)+"月"+
DateUtilities.elapsedDays(d2,d1,true)+"天"+
DateUtilities.elapsedHours(d2,d1,true)+"小时";
trace(s);
显示:1年2月6天4小时
6、从字符串中获取日期
var fm:DateFormat=new DateFormat("m/d/Y");
var d:Date=fm.parse("08/14/2010");
trace(d);