AS3中的UTC时间到GMT + 2

时间:2011-10-25 12:45:42

标签: actionscript-3 datetime date utc localtime

我遇到了问题。使用本地提供的Date()函数AS3,我将UTC时间转换为本地机器时间。

我遇到的问题是这样,请查看monthhour

2011-10-07 18:45:00 -> 2011-10-07 21:45:00
2011-11-07 18:45:00 -> 2011-11-07 20:45:00

这可能是因为夏令时,但我认为日期操作的原生函数会考虑到这一点。

我是对的,那是问题吗?我应该自己考虑夏令时吗?或者它有什么不同?

2 个答案:

答案 0 :(得分:1)

来自Date文档:

  

Date类以不同方式处理夏令时,具体取决于操作系统和运行时版本... Date对象检测当前语言环境是否采用夏令时,如果是,则检测标准到日光节省时间过渡日期和时间。

据此,我相信这意味着Date对象将检测当前时间的DST。如果您正在查看将来的日期,我认为您需要自己处理偏移量。

我过去曾使用此代码来说明computus.org上找到的DST:

public static function getTimezone():Number
{
  // Create two dates: one summer and one winter
  var d1:Date = new Date( 0, 0, 1 )
  var d2:Date = new Date( 0, 6, 1 )
 
  // largest value has no DST modifier
  var tzd:Number = Math.max( d1.timezoneOffset, d2.timezoneOffset )
 
  // convert to milliseconds
  return tzd * 60000
}
 
public static function getDST( d:Date ):Number
{
  var tzd:Number = getTimezone()
  var dst:Number = (d.timezoneOffset * 60000) - tzd
  return dst
}

答案 1 :(得分:0)

如果您只想使用select语句从UTC 0返回+2日期值,并且您不必为DLST提供服务,例如南非 然后以下为我工作:

protected void onCreate(@Nullable Bundle savedInstanceState)