в java.util.Date время хранится в GMT, но при использовании toString() добавляется TimeZone по умолчанию из настроек JVM
see java.util.Date#toString и внимательно java.util.Date#normalize. Чтобы получить java.util.Date скоректированое :
Calendar c = Calendar.getInstance();
TimeZone z = c.getTimeZone();
int offset = z.getRawOffset();
if(z.inDaylightTime(new Date())){
offset = offset + z.getDSTSavings();
}
int offsetHrs = offset / 1000 / 60 / 60;
int offsetMins = offset / 1000 / 60 % 60;
c.add(Calendar.HOUR_OF_DAY, (-offsetHrs));
c.add(Calendar.MINUTE, (-offsetMins));
return с.getTime();