Ваше значение 1199290977L неверно. Он измеряется в секундах со времени эпохи Unix (полночь 1 января 1970 года по Гринвичу) - вам нужно умножить его на 1000, чтобы получить миллисекунды со времени эпохи.
Вы также используете Calendar.HOUR
, который является 12-часовыми часами вместо Calendar.HOUR_OF_DAY
, который является 24-часовыми часами. Этот код:
Calendar obj = Calendar.getInstance();
obj.setTimeZone(TimeZone.getTimeZone("GMT"));
obj.setTimeInMillis(1199290977000L);
System.out.println(obj.get(Calendar.HOUR_OF_DAY) + ":" +
obj.get(Calendar.MINUTE));
... печатает 16: 22.
Однако вы должны определенно использовать класс java.text.DateTimeFormat
вместо того, чтобы делать это самостоятельно - или, в идеале, использовать Joda Time вместо этого.