1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
private static Date offsetTimeZone(Date date, String fromTZ, String toTZ){ // Construct FROM and TO TimeZone instances TimeZone fromTimeZone = TimeZone.getTimeZone(fromTZ); TimeZone toTimeZone = TimeZone.getTimeZone(toTZ); // Get a Calendar instance using the default time zone and locale. Calendar calendar = Calendar.getInstance(); // Set the calendar's time with the given date calendar.setTimeZone(fromTimeZone); calendar.setTime(date); System.out.println("Input: " + calendar.getTime() + " in " + fromTimeZone.getDisplayName()); calendar.set(calendar.DST_OFFSET, 0); // this line to off DST // FROM TimeZone to UTC calendar.add(Calendar.MILLISECOND, fromTimeZone.getRawOffset() * -1); if (fromTimeZone.inDaylightTime(calendar.getTime())) { calendar.add(Calendar.MILLISECOND, calendar.getTimeZone().getDSTSavings() * -1); System.out.println("hrere"); } // UTC to TO TimeZone calendar.add(Calendar.MILLISECOND, toTimeZone.getRawOffset()); if (toTimeZone.inDaylightTime(calendar.getTime())) { calendar.add(Calendar.MILLISECOND, toTimeZone.getDSTSavings()); System.out.println("doing"); } return calendar.getTime(); } |
calendar.set(calendar.DST_OFFSET, 0);