package Ġcom . github . nu hk oca . data Ċ Ċ import Ġcom . squareup . mos hi . FromJson Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġcom . squareup . mos hi . Json Reader Ċ import Ġcom . squareup . mos hi . Json Writer Ċ import Ġcom . squareup . mos hi . ToJson Ċ import Ġjava . text . ParseException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Date Ċ import Ġjava . util . Locale Ċ Ċ class ĠDate Type Adapter Ġ: ĠJson Adapter < Date >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġserver Formatter Ġ= ĠSimpleDateFormat ( SERVER _ DATE _ FORMAT , ĠLocale . getDefault ()) ĊĠĠĠ Ġprivate Ġval Ġapp Formatter Ġ= ĠSimpleDateFormat ( APP _ DATE _ FORMAT , ĠLocale . getDefault ()) ĊĊĠĠĠ Ġ@ FromJson ĊĠĠĠ Ġoverride Ġfun Ġfrom Json ( reader : ĠJson Reader ): ĠDate ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate AsString Ġ= Ġreader . next String () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Formatter . parse ( date AsString ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ToJson ĊĠĠĠ Ġoverride Ġfun ĠtoJson ( writer : ĠJson Writer , Ġvalue : ĠDate ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ Ġwriter . value ( app Formatter . format ( it )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSERVER _ DATE _ FORMAT Ġ= Ġ" yyyy - MM - dd ' T ' HH : mm : ss . SSSS SS ' Z '" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAPP _ DATE _ FORMAT Ġ= Ġ" yyyy - MM - dd " ĊĠĠĠ Ġ} Ċ } Ċ