package Ġcom . orge cc . util Ċ Ċ import Ġjava . time . Instant Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . Z onedDateTime Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . time . temporal . Temporal Accessor Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġelif ar ley Ġon Ġ 3 1 / 0 8 / 1 6 . Ċ Ġ*/ Ċ Ċ object ĠDateTime Kit Ġ{ ĊĊĠĠĠ Ġfun Ġto Zone Offset ( local DateTime : ĠLocalDateTime , Ġzone Id : ĠZone Id ? Ġ= Ġnull ): ĠZone Offset Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġl z id Ġ= Ġzone Id Ġ?: ĠZone Id . system Default () ĊĊĠĠĠĠĠĠĠ Ġval Ġtrans Ġ= Ġl z id . rules . get Transition ( local DateTime ) Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNormal Ġcase : Ġonly Ġone Ġvalid Ġoffset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġl z id . rules . get Offset ( local DateTime ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠG ap Ġor ĠOver lap : Ġdetermine Ġwhat Ġto Ġdo Ġfrom Ġtransition ĊĠĠĠĠĠĠĠ Ġlogger ( DateTime Kit . java Class ). warn ("[ to Zone Offset ] Ġ{}", Ġtrans . toString (), ĠRuntimeException (" Timezone Ġtransition Ġfound ")) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġl z id . rules . get Offset ( local DateTime ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun ĠTemp oral Accessor . toDate ( zone Id : ĠZone Id ? Ġ= Ġnull ) Ġ= ĠLocalDateTime . from ( this ). toDate ( zone Id ) ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun ĠLocalDate . toDate ( zone Id : ĠZone Id ? Ġ= Ġnull ) Ġ= Ġthis . at Start OfDay (). toDate ( zone Id ) ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun ĠLocalDateTime . toDate ( zone Id : ĠZone Id ? Ġ= Ġnull ): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDate . from ( this . to Instant ( to Zone Offset ( this , Ġzone Id ))) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun ĠInstant . to LocalDateTime ( zone Id : ĠZone Id ? Ġ= Ġnull ) Ġ= ĠLocalDateTime . of Instant ( this , Ġzone Id Ġ?: ĠZone Id . system Default ()) !! ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun ĠDate . to LocalDateTime ( zone Id : ĠZone Id ? Ġ= Ġnull ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġjava . sql . Date Ġdoesn 't Ġhave Ġtime Ġinformation , Ġso Ġwe Ġneed Ġto Ġcreate Ġa Ġjava . util . Date Ġinstance Ġout Ġof Ġit ĊĠĠĠĠĠĠĠ Ġthis Ġis Ġjava . sql . Date Ġ-> ĠDate ( this . time ). to Instant (). to LocalDateTime ( zone Id ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthis . to Instant (). to LocalDateTime ( zone Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠDATE _ FORMAT TER Ġ= ĠDateTime Formatter . of Pattern (" yyyy MM dd . HH mm ss "). with Zone ( Zone Id . system Default ()) !! ĊĠĠĠ Ġfun ĠDateTime Formatter . format ( date : ĠDate ) Ġ= Ġthis . format ( date . to Instant ()) !! Ċ Ċ } Ċ