*/
public long toJavaMillis() {
// Force use of the Gregorian calendar in UTC and manually offset hours later.
// Mainly because it isn't convenient to create a TimeZone from a UTC/GMT offset.
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
cal.clear(); // kills milliseconds or any other partial crap.
cal.set(year + 1900, month - 1, day, hour, minute, second);
// GMT offset in 15 minute intervals.
// Example, if offset is GMT+10, the value will be +40, and we need to subtract 600 minutes.
cal.add(Calendar.MINUTE, -gmtOffset * 15);