Я считаю, что проблема в часовом поясе по умолчанию на платформе, на которой вы работаете.
java.util.Date()
действительно имеет часовой пояс.Он поддерживает «унаследованную» информацию о часовом поясе, которая, по-видимому, получена из языкового стандарта системы по умолчанию.
этот код.
TimeZone tz = TimeZone.getTimeZone("GMT-03:00");
Calendar cal = Calendar.getInstance(tz);
cal.set(1953, 2, 22, 4, 20, 13);
Date dateTime = cal.getTime();
System.out.println(dateTime.toString());
дает это в моей системе, которая используетЯзык PST: суббота, 21 марта 23:20:13 PST 1953.
Я не верю, что есть способ использовать java.util.Date object
или объекты DateFormat, которые его используют, для точной обработки информации о временииз «иностранного» часового пояса.