Here you can find the source of getLocalTimeFromUTC( String localTimeZoneId, java.util.Date utcTimestamp)
public static java.util.Date getLocalTimeFromUTC( String localTimeZoneId, java.util.Date utcTimestamp)
//package com.java2s; /**/*from w w w .ja v a2s. c o 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.TimeZone utcTimeZone = null; /** * getLocal: returns the local time. * * {talendTypes} Date * * {Category} TimestampUtil * * {param} string("Europe/Madrid") localTimeZoneId : ID of time zone * * {param} date(utcTimestamp) utcTimestamp : the date value * * {example} getLocalTimeFromUTC("Europe/Madrid", utcTimestamp). */ public static java.util.Date getLocalTimeFromUTC( String localTimeZoneId, java.util.Date utcTimestamp) { java.util.TimeZone tz = getTimeZone(localTimeZoneId); return getLocalTimeFromUTC(tz, utcTimestamp); } private static java.util.Date getLocalTimeFromUTC( java.util.TimeZone tz, java.util.Date utcTimestamp) { return getLocalTime(tz, utcTimestamp, getUTCTimeZone()); } private static java.util.TimeZone getTimeZone(String idParam) { if (idParam == null || idParam.isEmpty()) { throw new IllegalArgumentException( "id for time zone cannot be null or empty"); } idParam = idParam.trim(); String[] tzArray = java.util.TimeZone.getAvailableIDs(); for (String id : tzArray) { if (id.equalsIgnoreCase(idParam)) { return java.util.TimeZone.getTimeZone(id); } } return null; } 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; } } private static java.util.TimeZone getUTCTimeZone() { if (utcTimeZone == null) { utcTimeZone = java.util.TimeZone.getTimeZone("UTC"); } return utcTimeZone; } }