Вы приняли getDay()
за getDate()
.
getDay Javadoc:
Возвращает день недели, представленный этой датой.Возвращаемое значение (0 = воскресенье, 1 = понедельник, 2 = вторник, 3 = среда, 4 = четверг, 5 = пятница, 6 = суббота) представляет день недели, который содержит или начинается с момента времени, представленного этимДата объекта, как интерпретируется в местном часовом поясе.
Так что просто используйте getDate()
вместо getDay()
Для получения дополнительной информации, проверьте Javadoc: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html
Если ваше время все ещеотличается от времени в Unix, которое вы пробовали, вы, вероятно, живете не в часовом поясе GMT, поэтому вам нужно узнать дату для соответствующего часового пояса:
SimpleDateFormat df = new SimpleDateFormat();
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(df.format(time));
Это должно дать вам ожидаемый результат, даже есливаш местный таймзон отличается от GMT