我遇到了问题。使用本地提供的Date()
函数AS3,我将UTC时间转换为本地机器时间。
我遇到的问题是这样,请查看month
和hour
。
2011-10-07 18:45:00 -> 2011-10-07 21:45:00
2011-11-07 18:45:00 -> 2011-11-07 20:45:00
这可能是因为夏令时,但我认为日期操作的原生函数会考虑到这一点。
我是对的,那是问题吗?我应该自己考虑夏令时吗?或者它有什么不同?
答案 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)