package Ġcom . fund ito . fund ito . common . util Ċ Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġm j Ġon Ġ 2 6 , ĠDecember , Ġ 2 0 1 9 Ċ Ġ*/ Ċ object ĠDate Parsing Util Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsimple DateFormat Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ĠHH : mm : ss ", ĠLocale . K ORE A ) ĊĠĠĠ Ġprivate Ġval Ġfallback Format Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss . SS SZ ", Locale . K ORE A ) ĊĠĠĠ Ġprivate Ġval Ġfallback 2 Format Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss . SS S ' Z '", Locale . K ORE A ) ĊĠĠĠ Ġprivate Ġval Ġfallback 3 Format Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ĠHH : mm ", Locale . K ORE A ) ĊĊĠĠĠ Ġfun Ġparse To Y MD ( src Ġ: ĠCalendar , Ġseparator Ġ: ĠString Ġ= Ġ". ") Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġsrc [ Calendar . YEAR ] ĊĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġsrc [ Calendar . MONTH ] Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġsrc [ Calendar . DATE ] ĊĠĠĠĠĠĠĠ Ġreturn ĠString . format ("% 0 4 d ", year ) Ġ+ Ġseparator Ġ+ ĠString . format ("% 0 2 d ", month ) Ġ+ Ġseparator Ġ+ ĠString . format ("% 0 2 d ", date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse To Y MD HM ( src Ġ: ĠCalendar , Ġy md Separator : ĠString Ġ= Ġ".", Ġtime Separator Ġ: ĠString Ġ= Ġ": ") Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġy md Ġ= Ġparse To Y MD ( src , y md Separator ) ĊĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġsrc [ Calendar . HOUR _ OF _ DAY ] ĊĠĠĠĠĠĠĠ Ġval Ġminute Ġ= Ġsrc [ Calendar . MINUTE ] ĊĠĠĠĠĠĠĠ Ġreturn Ġy md Ġ+ Ġ" Ġ" Ġ+ ĠString . format ("% 0 2 d ", hour ) Ġ+ Ġtime Separator Ġ+ ĠString . format ("% 0 2 d ", minute ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse String ( raw Ġ: ĠString ) Ġ: ĠCalendar Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple DateFormat . parse ( raw ) ĊĠĠĠĠĠĠĠ Ġ} catch ( t : Throwable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfallback Format . parse ( raw ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch ( t Ġ: ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfallback 2 Format . parse ( raw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfallback 3 Format . parse ( raw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠCalendar . getInstance (). apply Ġ{ Ġtime Ġ= Ġdate Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalculate Diff With Current ( raw String Ġ: ĠString , Ġis Future Ġ: ĠBoolean Ġ= Ġfalse ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcalculate Diff With Current ( parse String ( raw String ). time In Millis , is Future ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalculate Diff With Current ( time Ms Ġ: ĠLong , Ġis Future Ġ: ĠBoolean Ġ= Ġfalse ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdiff Ġ= ĠSystem . currentTimeMillis () Ġ- Ġtime Ms ĊĊĠĠĠĠĠĠĠ Ġif ( is Future ) Ġdiff Ġ= Ġ- diff ĊĠĠĠĠĠĠĠ Ġval Ġdiff Min Ġ= Ġdiff Ġ/ Ġ 1 0 0 0 Ġ/ Ġ 6 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġday Diff Ġ= Ġdiff Min Ġ/ Ġ 6 0 Ġ/ Ġ 2 4 ĊĠĠĠĠĠĠĠ Ġval Ġhour Diff Ġ= Ġdiff Min Ġ/ Ġ 6 0 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday Diff Ġ> Ġ 0 Ġ-> Ġ"${ day Diff } ìĿ¼ ìłĦ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhour Diff Ġ> Ġ 0 Ġ-> "${ hour Diff } ìĭľ ê°Ħ ìłĦ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Min Ġ> Ġ 0 Ġ-> Ġ"${ diff Min } ë¶Ħ ìłĦ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġif (! is Future ) Ġ" ë° © ê¸Ī ĠìłĦ " Ġelse Ġ" ë§Ī ê° Ĳ " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }