使用DST将UTC时间戳转换为本地时间戳

时间:2015-02-18 20:04:18

标签: android utc dst

这是我的代码。我的问题是android(任何其他系统内部如何处理DST)。 DST规则可以改变。或者它是一个太过落实的案例,无论是真正的问题。

public long getLocalTimeFromUTCTime(long utcTime)
{
    Time time = new Time();
    time.set(utcTime);
    TimeZone localTimezone = TimeZone.getDefault();
    time.switchTimezone(localTimezone.getID());
    time.normalize(false);
    return time.toMillis(false);
}

1 个答案:

答案 0 :(得分:0)

根据建议here,这似乎已经成功了:

SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
String date="2012-10-03T22:00:00.000+0000";
try {
    System.out.println(dateTimeFormat.getTimeZone().getDisplayName());
    System.out.println("Today : "+new Date().toString()+ ", Timezone Offset :" +
            +(new Date()).getTimezoneOffset());
    System.out.println("Parsed Date : "+
            dateTimeFormat.parse(date).toString()
            + ", Timezone Offset : "
            +dateTimeFormat.parse(date).getTimezoneOffset());           
} catch (ParseException e) {            
    e.printStackTrace();
}

更具体地说,您应该查看getTimezoneOffset()