All times, that we return as longs (tick.getTime(), bar.getTime()) are in GMT+0 time. This is Java standard for time represented in long. It can be the same as BST half the year and can be different another half when daylight savings are counted in in BST. When you print new Date(timeInLong).getHours() or new Date(timeInLong).toString() it uses DateFormat in your local timezone. In Australia you will have another time because of different time zone. If you want to print time in GMT, then you can use this code:
DateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss SSS");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
console.getOut().println(dateFormat.format(new Date(timeInLong)));
or if you want to get hours in GMT:
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.setTimeInMillis(timeInLong);
int hours = cal.get(Calendar.HOUR_OF_DAY);
console.getOut().println(hours);
TimeZone and Calendar are classes in java.util package and DateFormat is in java.text package