Date
不像你想象的那样工作。它可以以两种格式之一存在:当地时间或 UTC。
该getHours()
方法返回本地时间,或根据计算机的内部时区偏移格式化的 UTC 时间。您过去的时间实际上是 UTC 时间早上 7 点。所以按照这个逻辑,你(和我)在 PST(或 UTC-7)。如果你运行d.timezoneOffset
,它应该返回420
,即 7 小时的分钟数。
现在,大多数时候你不想使用除 UTC 之外的任何东西(UTC 是一个常数,尤其是在计算机中)。所以忘记getHours()
方法,getUTCHours()
转而看。
trace(d.getTime() + " : " + d.getUTCHours ()); // output 1382166000000 : 7
因此,这将为您提供 UTC 小时的时间。接下来,您必须确定要将其格式化为哪个时区。EST 是 UTC-5,因此您想从 UTC 小时数中减去 5。
trace(d.getTime() + " : " + ( d.getUTCHours () - 5 )); // output 1382166000000 : 2
这正是您所期望的。
重申一下:AS3 的Date
课程不允许设置时区。您只能访问 UTC 和本地时区的时间。而已。如果您想要任何其他时区的时间,您需要手动格式化它,就像我在上面所做的那样。