0
我试图将GMT时间转换为当前时区(即GMT -7,加利福尼亚州确切),但时间不到1小时。Android Calendar从GMT转换为当前时区后1小时后关闭
下面是我从检索值的字符串的一个例子: 2014-05-07T02:02:04.316Z
所以我的正确的时间(而不是下午7点02分的18:02)1-小时空头。为什么是这样?
private Calendar setTimeStamp(String s) {
int year = Integer.parseInt(s.substring(0, 4));
int month = Integer.parseInt(s.substring(5, 7)) - 1;
int day = Integer.parseInt(s.substring(8, 10));
int hour = Integer.parseInt(s.substring(11, 13));
int minute = Integer.parseInt(s.substring(14, 16));
Calendar gmtCal = Calendar.getInstance();
gmtCal.set(year, month, day, hour, minute);
long gmtTimeInMillis = gmtCal.getTimeInMillis();
long currentTimeInMillis = gmtTimeInMillis + TimeZone.getDefault().getRawOffset();
Calendar adjustedCal = Calendar.getInstance(TimeZone.getDefault());
adjustedCal.setTimeInMillis(currentTimeInMillis);
return adjustedCal;
}
这固定了它。谢谢!完全忘记了DST /额头贴 –