code: public static long roundToHour(final long pTime, final TimeZone pTimeZone) {
          int offset = pTimeZone.getOffset(pTime);
          return ((pTime / HOUR) * HOUR) - offset;
      }
docs: Rounds the given time down to the closest hour, using the given timezone.
  
  @param pTime time
  @param pTimeZone the timezone to use when rounding
  @return the time rounded to the closest hour.