package Ġm ary k . lib . time Ċ Ċ import Ġm ary k . lib . exceptions . ParseException Ċ import Ġplatform . Core Foundation . k CF ISO 8 6 0 1 DateFormat With Internet DateTime Ċ import Ġplatform . Foundation . N SC al endar Ċ import Ġplatform . Foundation . NS ISO 8 6 0 1 Date Formatter Ċ import Ġplatform . Foundation . N ST ime Zone Ċ import Ġplatform . Foundation . time Zone For Seconds From GMT Ċ Ċ /** ĠObject Ġto Ġconvert Ġnative ĠISO 8 6 0 1 Ġ*/ Ċ actual Ġobject ĠISO 8 6 0 1 Ġ{ ĊĠĠĠ Ġprivate Ġval Ġut c TimeZone Ġ= ĠN ST ime Zone . time Zone For Seconds From GMT ( 0 ) ĊĠĠĠ Ġprivate Ġval Ġformatter Ġ= ĠNS ISO 8 6 0 1 Date Formatter () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġformatter . format Options Ġ= Ġk CF ISO 8 6 0 1 DateFormat With Internet DateTime ĊĠĠĠĠĠĠĠ Ġformatter . time Zone Ġ= Ġut c TimeZone ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠDecode Ġ[ iso 8 6 0 1 ] Ġstring Ġinto ĠDateTime Ġ*/ ĊĠĠĠ Ġactual Ġfun Ġto Date ( iso 8 6 0 1 : ĠString ): ĠDateTime Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġformatter . date FromString ( iso 8 6 0 1 )?. let Ġ{ Ġdate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponents Ġ= ĠN SC al endar . current Calendar . components In TimeZone ( utc TimeZone , Ġdate ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDateTime ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . year . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . month . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . day . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . hour . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . minute . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . second . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( components . nan ose cond Ġ/ Ġ 1 _ 0 0 0 _ 0 0 0 ). to Short () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠParseException (" ISO 8 6 0 1 Ġdate Ġinvalid Ġ$ iso 8 6 0 1 ") ĊĠĠĠ Ġ} Ċ } Ċ