Date 类是所有核心类中构造函数方法形式最为多变的类之一。您可以用以下四种方式来调用 Date 类。
第一,如果未给定参数,则
Date()
构造函数将按照您所在时区的本地时间返回包含当前日期和时间的 Date 对象。这里提供了一个示例:
var now:Date = new Date();
第二,如果仅给定了一个数字参数,则
Date()
构造函数将其视为自 1970 年 1 月 1 日以来经过的毫秒数,并且返回对应的 Date 对象。请注意,您传入的毫秒值将被视为自 1970 年 1 月 1 日(UTC 时间)以来经过的毫秒数。但是,该 Date 对象会按照您所在的本地时区来显示值,除非您使用特定于 UTC 的方法来检索和显示这些值。如果仅使用一个毫秒参数来创建新的 Date 对象,则应确保考虑到您的当地时间和 UTC 之间的时区差异。以下语句创建一个设置为 1970 年 1 月 1 日午夜(UTC 时间)的 Date 对象:
var millisecondsPerDay:int = 1000 * 60 * 60 * 24;
// gets a Date one day after the start date of 1/1/1970
var startTime:Date = new Date(millisecondsPerDay);
第三,您可以将多个数值参数传递给
Date()
构造函数。该构造函数将这些参数分别视为年、月、日、小时、分钟、秒和毫秒,并将返回一个对应的 Date 对象。假定这些输入参数采用的是本地时间而不是 UTC。以下语句获取一个设置为 2000 年 1 月 1 日开始的午夜(本地时间)的 Date 对象:
var millenium:Date = new Date(2000, 0, 1, 0, 0, 0, 0);
第四,您可以将单个字符串参数传递给
Date()
构造函数。该构造函数将尝试把字符串分析为日期或时间部分,然后返回对应的 Date 对象。如果使用此方法,最好将
Date()
构造函数包含在
try..catch
块中,以捕获所有分析错误。
Date()
构造函数可接受多种不同的字符串格式(
用于 Adobe Flash Platform 的 ActionScript 3.0 参考
中列出了这些格式)。以下语句使用字符串值初始化一个新的 Date 对象:
var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM");
如果
Date()
构造函数无法成功分析该字符串参数,它不会引发异常。但是,所得到的 Date 对象将包含一个无效的日期值。