package Ġdev . cale bm iller . application . util Ċ Ċ import Ġkotlinx . serialization . K 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 . time . LocalDateTime Ċ import Ġjava . time . Offset DateTime Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ object ĠOffset DateTime Serializer Ġ: ĠK Serializer < Offset DateTime > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor Ġ= ĠPrimitive Serial Descriptor (" Offset DateTime ", ĠPrimitive Kind . STRING ) ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠOffset DateTime ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Ġ= ĠDateTime Formatter . ISO _ OFFSET _ DATE _ TIME . format ( value ) ĊĠĠĠĠĠĠĠ Ġencoder . encode String ( string ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠOffset DateTime Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Ġ= Ġdecoder . decode String () ĊĠĠĠĠĠĠĠ Ġreturn ĠOffset DateTime . parse ( string ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠUnix DateTime Serializer Ġ: ĠK Serializer < Offset DateTime > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor Ġ= ĠPrimitive Serial Descriptor (" Offset DateTime ", ĠPrimitive Kind . LONG ) ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠOffset DateTime ) Ġ{ ĊĠĠĠĠĠĠĠ Ġencoder . encode Long ( value . to Epoch Second ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠOffset DateTime Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtimestamp Ġ= Ġdecoder . decode Long () ĊĠĠĠĠĠĠĠ Ġreturn ĠOffset DateTime . of ( LocalDateTime . of Epoch Second ( timestamp , Ġ 0 , ĠZone Offset . UTC ), ĠZone Offset . UTC ) ĊĠĠĠ Ġ} Ċ }