package Ġsystems . danger . kotlin . models . serializers Ċ Ċ import Ġkotlinx . datetime . Instant Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . Serializer Ċ import Ġkotlinx . serialization . descriptors . Primitive Kind Ċ import Ġkotlinx . serialization . descriptors . Primitive Serial Descriptor Ċ import Ġkotlinx . serialization . descriptors . Serial Descriptor Ċ import Ġkotlinx . serialization . encoding . Decoder Ċ import Ġkotlinx . serialization . encoding . Encoder Ċ import Ġjava . lang . Exception Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ @ Experimental Serialization Api Ċ @ Serializer ( for Class Ġ= ĠDate Serializer :: class ) Ċ object ĠDate Serializer Ġ: ĠK Serializer < Instant > Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPrimitive Serial Descriptor (" kotlin x . datetime . Instant ", ĠPrimitive Kind . STRING ) ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠInstant ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠImplementation Ġnot Ġneeded Ġfor Ġnow ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠInstant Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġdecoder . decode String () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . parse ( value ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInstant . from Epoch Milliseconds ( Git Lab ISO 8 6 0 1 DateFormat (). parse ( value ). to Instant (). to Epoch Milli ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠGitLab ISO 8 6 0 1 DateFormat Ġ{ ĊĠĠĠ Ġfun Ġparse ( string : ĠString ?): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" yyyy - MM - dd ' T ' HH : mm : ss . SS S XXX " ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Zone Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġformatter . parse ( string . toString ()) ĊĠĠĠ Ġ} Ċ Ċ } Ċ