Here you can find the source of getLocalTime( java.util.TimeZone localTimeZone, java.util.Date timestamp, java.util.TimeZone sourceTimeZone)
private static java.util.Date getLocalTime( java.util.TimeZone localTimeZone, java.util.Date timestamp, java.util.TimeZone sourceTimeZone)
//package com.java2s; /**//from ww w. ja v a 2s. co m * Copyright 2015 Jan Lolling jan.lolling@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class Main { private static java.util.Date getLocalTime( java.util.TimeZone localTimeZone, java.util.Date timestamp, java.util.TimeZone sourceTimeZone) { if (timestamp != null) { if (localTimeZone == null) { throw new IllegalArgumentException( "localTimeZone cannot be null"); } if (sourceTimeZone == null) { throw new IllegalArgumentException( "sourceTimeZone cannot be null"); } java.util.Calendar c = java.util.Calendar.getInstance(); //c.setTimeZone(sourceTimeZone); c.clear(); c.setTimeInMillis(timestamp.getTime()); // adapt the local time zone int offset = localTimeZone.getOffset(timestamp.getTime()); offset = offset - sourceTimeZone.getOffset(timestamp.getTime()); int offsetHrs = offset / 1000 / 60 / 60; int offsetMins = offset / 1000 / 60 % 60; c.add(java.util.Calendar.HOUR_OF_DAY, (offsetHrs)); c.add(java.util.Calendar.MINUTE, (offsetMins)); return c.getTime(); } else { return null; } } }