package Ġcom . lo dz . android . core kt . utils Ċ Ċ import Ġandroid . app . DatePicker Dialog Ċ import Ġandroid . app . Time Picker Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . String Def Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ æĹ¶éĹ´ å¸®åĬ© ç±» Ċ Ġ* ĠCreated Ġby Ġz hou L Ġon Ġ 2 0 1 8 / 7 / 2 . Ċ Ġ*/ Ċ object ĠDate Utils Ġ{ ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 Ġ= Ġ" HH : mm " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 2 Ġ= Ġ" yyyy - MM - dd ĠHH : mm : ss " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 3 Ġ= Ġ" yyyy MM dd HH mm ss SS S " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 4 Ġ= Ġ" yyyy MM dd HH mm ss " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 5 Ġ= Ġ" yyyy MM dd " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 6 Ġ= Ġ" yyyy - MM - dd " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 7 Ġ= Ġ" yyyy - MM - dd - HH - mm - ss " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 8 Ġ= Ġ" HH : mm : ss " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 9 Ġ= Ġ" yyyy - MM - dd ĠHH - mm - ss " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 0 Ġ= Ġ" yyyy - MM - dd ĠHH : mm : ss : SS S " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 1 Ġ= Ġ" yyyy - MM - dd ĠHH : mm " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 2 Ġ= Ġ" yyyy MM " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 3 Ġ= Ġ" yyyy - MM " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 4 Ġ= Ġ" yyyy " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 5 Ġ= Ġ" yyyy å¹´ MM æľĪ dd æĹ¥ " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 6 Ġ= Ġ" yyyy å¹´ MM æľĪ dd æĹ¥ ĠHH : mm " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 7 Ġ= Ġ" yyyy å¹´ MM æľĪ dd æĹ¥ ĠHH : mm : ss " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 8 Ġ= Ġ" yyyy å¹´ MM æľĪ " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 1 9 Ġ= Ġ" MM æľĪ dd æĹ¥ " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 2 0 Ġ= Ġ" HH çĤ¹ mm åĪĨ " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 2 1 Ġ= Ġ" HH çĤ¹ mm åĪĨ ss ç§Ĵ " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 2 2 Ġ= Ġ" yyyy å¹´ MM æľĪ dd æĹ¥ ĠHH çĤ¹ mm åĪĨ " ĊĠĠĠ Ġconst Ġval ĠTYPE _ 2 3 Ġ= Ġ" yyyy å¹´ MM æľĪ dd æĹ¥ ĠHH çĤ¹ mm åĪĨ ss ç§Ĵ " ĊĊĊĠĠĠ Ġ@ String Def ( TYPE _ 1 , ĠTYPE _ 2 , ĠTYPE _ 3 , ĠTYPE _ 4 , ĠTYPE _ 5 , ĠTYPE _ 6 , ĠTYPE _ 7 , ĠTYPE _ 8 , ĠTYPE _ 9 , ĠTYPE _ 1 0 , ĠTYPE _ 1 1 , ĠTYPE _ 1 2 , ĠTYPE _ 1 3 , ĠTYPE _ 1 4 ) ĊĠĠĠ Ġ@ Retention ( Annotation Retention . SOURCE ) ĊĠĠĠ Ġannotation Ġclass ĠFormat Type ĊĊĠĠĠ Ġ/** Ġ æł¼å¼ı åĮĸ [ format Type ] å½ĵåīį æĹ¶éĹ´ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetCurrent Format String ( format Type : ĠString ): ĠString Ġ= Ġget Format String ( format Type , ĠDate ( System . currentTimeMillis ())) ĊĊĠĠĠ Ġ/** Ġ æł¼å¼ı åĮĸ [ format Type ] å½ĵåīį æĹ¶éĹ´ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Format String ( format Type : ĠString , Ġdate : ĠDate ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( date Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( format Type , ĠLocale . CH INA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġformat . format ( date ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ æł¼å¼ı åĮĸ [ format Type ] æĹ¶éĹ´ æĪ ³ [ milliseconds ] Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Format Milliseconds ( format Type : ĠString , Ġmilliseconds : ĠLong ): ĠString Ġ= Ġget Format String ( format Type , ĠDate ( milliseconds )) ĊĊĠĠĠ Ġ/** Ġå°Ĩ æł¼å¼ı åĮĸ [ format Type ] åĲİçļĦ æĹ¶éĹ´ åŃĹç¬¦ä¸² [ source ] è½¬ æĪĲ Date Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġparse Format Date ( format Type : ĠString , Ġsource : ĠString ): ĠDate ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( format Type , ĠLocale . CH INA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġformat . parse ( source ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġå°Ĩ æł¼å¼ı åĮĸ [ format Type ] åĲİçļĦ æĹ¶éĹ´ åŃĹç¬¦ä¸² [ source ] è½¬ æĪĲ Calendar Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġparse Format To Calendar ( format Type : ĠString , Ġsource : ĠString ): ĠCalendar ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġparse Format Date ( format Type , Ġsource ) ĊĠĠĠĠĠĠĠ Ġif Ġ( date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparse Date To Calendar ( date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġå°Ĩ [ date ] è½¬ æĪĲ Calendar Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġparse Date To Calendar ( date : ĠDate ): ĠCalendar Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcal . time Ġ= Ġdate ĊĠĠĠĠĠĠĠ Ġreturn Ġcal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġå°Ĩ æĹ¥æľŁ åŃĹç¬¦ä¸² [ source ] ä»İ æĹ§ æł¼å¼ı [ old Format Type ] æĶ¹ ä¸º æĸ° æł¼å¼ı [ new Format Type ] Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġchange Format String ( old Format Type : ĠString , Ġnew Format Type : ĠString , Ġsource : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġparse Format Date ( old Format Type , Ġsource ) Ġ?: Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn Ġget Format String ( new Format Type , Ġdate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġèİ·åıĸ æł¼å¼ı ä¸º [ format Type ] çļĦ æĹ¥æľŁ åŃĹç¬¦ä¸² [ source ] ä¹ĭåĲİ [ n ] å¤© çļĦ æĹ¥æľŁ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget After Day ( format Type : ĠString , Ġsource : ĠString , Ġn : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal . time Ġ= Ġparse Format Date ( format Type , Ġsource ) Ġ?: Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal . set ( Calendar . DATE , Ġcal . get ( Calendar . DATE ) Ġ+ Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparse Format Calendar ( format Type , Ġcal ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġèİ·åıĸ æł¼å¼ı ä¸º [ format Type ] çļĦ æĹ¥æľŁ åŃĹç¬¦ä¸² [ source ] ä¹ĭåīį [ n ] å¤© çļĦ æĹ¥æľŁ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Before Day ( format Type : ĠString , Ġsource : ĠString , Ġn : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal . time Ġ= Ġparse Format Date ( format Type , Ġsource ) Ġ?: Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal . set ( Calendar . DATE , Ġcal . get ( Calendar . DATE ) Ġ- Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparse Format Calendar ( format Type , Ġcal ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġæł¹æį® æĹ¥ åİĨ [ calendar ] èİ·åıĸ å¯¹åºĶ æł¼å¼ı [ format Type ] çļĦæĹ¶éĹ´ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġparse Format Calendar ( format Type : ĠString , Ġcalendar : ĠCalendar ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget Format String ( format Type , ĠDate ( calendar . time In Millis )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ æĺ¾ç¤º æĹ¥æľŁ éĢīæĭ© åĻ¨ ï¼Į [ context ] ä¸Ĭä¸ĭ æĸĩ ï¼Į [ listener ] çĽĳåĲ¬ åĻ¨ ï¼Į [ calendar ] æĹ¥ åİĨ å¯¹è±¡ ï¼Ī é»ĺè®¤ èĩªåĬ¨ èİ·åıĸ ï¼ī Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġshow DatePicker ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġlistener : ĠDate Picker Dialog . On Date Set Listener , ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠDate Picker Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , Ġlistener , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . get ( Calendar . YEAR ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . get ( Calendar . MONTH ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . get ( Calendar . DAY _ OF _ MONTH ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ æĺ¾ç¤º æĹ¶éĹ´ éĢīæĭ© åĻ¨ ï¼Į [ context ] ä¸Ĭä¸ĭ æĸĩ ï¼Į [ listener ] çĽĳåĲ¬ åĻ¨ ï¼Į [ calendar ] æĹ¥ åİĨ å¯¹è±¡ ï¼Ī é»ĺè®¤ èĩªåĬ¨ èİ·åıĸ ï¼īï¼Į [ is 2 4 Hour View ] æĺ¯åĲ¦ æĮī 2 4 å°ı æĹ¶ æł¼å¼ı æĺ¾ç¤º çķĮéĿ¢ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġshow Time Picker ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġlistener : ĠTime Picker Dialog . On Time Set Listener , ĊĠĠĠĠĠĠĠ Ġcalendar : ĠCalendar Ġ= ĠCalendar . getInstance (), ĊĠĠĠĠĠĠĠ Ġis 2 4 Hour View : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠTime Picker Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , Ġlistener , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . get ( Calendar . HOUR _ OF _ DAY ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . get ( Calendar . MINUTE ), Ġis 2 4 Hour View ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ æĹ¥æľŁ 1 æĺ¯åĲ¦ åľ¨ æĹ¥æľŁ 2 ä¹ĭåīį ï¼Ī date One Ġ< Ġdate Two ï¼ī Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġis Before ( date One : ĠDate , Ġdate Two : ĠDate ): ĠBoolean Ġ= Ġdate One . before ( date Two ) ĊĊĠĠĠ Ġ/** Ġ æĹ¥æľŁ 1 æĺ¯åĲ¦ åľ¨ æĹ¥æľŁ 2 ä¹ĭåīį ï¼Ī date One Ġ< Ġdate Two ï¼ī Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġis Before ( format Type : ĠString , Ġsource One : ĠString , Ġsource Two : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate One Ġ= Ġparse Format Date ( format Type , Ġsource One ) ĊĠĠĠĠĠĠĠ Ġval Ġdate Two Ġ= Ġparse Format Date ( format Type , Ġsource Two ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdate One ?. before ( date Two ) Ġ?: Ġfalse ĊĠĠĠ Ġ} Ċ } ĊĊĊĊĊ