import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
// Java 1.4+ Compatible
//
//The following example code demonstrates how to calculate
//the time difference between two different timezones, in
// particular New York and Alaska, given the current time.
// Since daylight savings time effective dates are different
// between countries, it's important to calculate the
// timezone difference at a particular date. Calculating
// the difference between the local timezone and a different
// one is also demonstrated.
// and a different one is also demonstrated.
public class DifferenceBetweenTwoTimezones {
public static void main(String[] args) {
// East Coast Time
Calendar c = new GregorianCalendar(TimeZone.getTimeZone("America/New_York"));
c.setTimeInMillis(new Date().getTime());
int EastCoastHourOfDay = c.get(Calendar.HOUR_OF_DAY);
int EastCoastDayOfMonth = c.get(Calendar.DAY_OF_MONTH);
// Alaska
c = new GregorianCalendar(TimeZone.getTimeZone("America/Anchorage"));
c.setTimeInMillis(new Date().getTime());
int AlaskaHourOfDay = c.get(Calendar.HOUR_OF_DAY);
int AlaskaDayOfMonth = c.get(Calendar.DAY_OF_MONTH);
// Difference between New York and Alaska
int hourDifference = EastCoastHourOfDay - AlaskaHourOfDay;
int dayDifference = EastCoastDayOfMonth - AlaskaDayOfMonth;
if (dayDifference != 0) {
hourDifference = hourDifference + 24;
}
System.out.println(hourDifference);
// Local Time
int localHourOfDay = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
int localDayOfMonth = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
// Difference between New York and Local Time (for me Germany)
hourDifference = EastCoastHourOfDay - localHourOfDay;
dayDifference = EastCoastDayOfMonth - localDayOfMonth;
if (dayDifference != 0) {
hourDifference = hourDifference + 24;
}
System.out.println(hourDifference);
}
}
Here is the output of the example code:
4 -6
See also: Get All Timezones Available in the TimeZone Class in Java
day diffs does not mean a diff of 24 hrs
ReplyDelete