package Ġcom . app . sky ss _ comp anion . misc Ċ Ċ import Ġandroid . util . Log Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . time .* Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . util .* Ċ Ċ class ĠDate Utils Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Date Utils " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATE _ PATTERN Ġ= Ġ" yyyy - MM - dd ' T ' HH : mm : ss . SS S ' Z '" ĊĊĠĠĠĠĠĠĠ Ġfun Ġis After Now ( s : ĠString ?, Ġformatter Pattern : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz onedDateTime Ġ= Ġparse Utc Date StringTo Eu Os lo TimeZone ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( zon ed DateTime . is After ( Z onedDateTime . now ())) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġparse Utc Date StringTo Eu Os lo TimeZone ( s : ĠString ): ĠZ onedDateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl dt Ġ= Ġparse Date StringTo LocalDateTime ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs , Ġget Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDATE _ PATTERN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz dt 1 Ġ= Ġconvert LocalDateTime To Utc Z onedDateTime ( ld t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchange Zone For Z onedDateTime ( z dt 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Formatter ( pattern : ĠString ): ĠDateTime Formatter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDateTime Formatter . of Pattern ( pattern ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġconvert LocalDateTime To Utc Offset DateTime ( ld t : ĠLocalDateTime ): ĠOffset DateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġl dt . at Zone ( Zone Id . of (" UTC ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Offset DateTime () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġchange Zone For Z onedDateTime ( z dt : ĠZ onedDateTime ): ĠZ onedDateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġz dt . with Zone Same Instant ( Zone Id . of (" Europe / Os lo ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġconvert LocalDateTime To Utc Z onedDateTime ( ld t : ĠLocalDateTime ): ĠZ onedDateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġl dt . at Zone ( Zone Id . of (" UTC ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġparse Date StringTo LocalDateTime ( s : ĠString , Ġformatter : ĠDateTime Formatter ): ĠLocalDateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLocalDateTime . parse ( s , Ġformatter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġformat Date ( s : ĠString ?, Ġpattern : ĠString ): ĠLocalDateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLocalDateTime . parse ( s , Ġget Formatter ( pattern )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }