private Long getImmediatePreviousZoneTransition ( long base ) { Long transitionTime = null ; if ( zone instanceof BasicTimeZone ) { TimeZoneTransition transition = ( ( BasicTimeZone ) zone ) . getPreviousTransition ( base , true ) ; if ( transition != null ) { transitionTime = transition . getTime ( ) ; } } else { // Usually, it is enough to check past one hour because such transition is most // likely +1 hour shift. However, there is an example jumped +24 hour in the tz database. transitionTime = getPreviousZoneTransitionTime ( zone , base , 2 * 60 * 60 * 1000 ) ; // check last 2 hours if ( transitionTime == null ) { transitionTime = getPreviousZoneTransitionTime ( zone , base , 30 * 60 * 60 * 1000 ) ; // try last 30 hours } } return transitionTime ; }
Find the previous zone transtion near the given time .