class TimestampWithTimezone {

    public static Date createDate( Calendar initial,
                                   Calendar target ) {
        if (target == null) {
            return createDate(initial);
        }

        long time = target.getTimeInMillis();

        target = adjustCalendarForDate(initial, target);

        Date result = normalizeDate(target, true);

        target.setTimeInMillis(time);

        return result;
    }

}