Encoding/Decoding module for urbit
{ year : Basics.Int
, month : Basics.Int
, day : Basics.Int
, hour : Basics.Int
, minute : Basics.Int
, second : Basics.Int
, millis : Basics.Int
}
An absolute date stored as a record.
fromDateRecord : DateRecord -> String
Convert a DateRecord to a @da encoded string.
fromDateRecord
{ year = 2021
, month = 8
, day = 3
, hour = 6
, minute = 39
, second = 55
, millis = 356
}
--> "~2021.8.3..6.39.55..05b2"
toDateRecord : String -> Result (List Parser.DeadEnd) DateRecord
Convert a @da encoded string to a DateRecord, failing on improperly formatted strings.
toDateRecord "~2021.8.3..6.39.55..05b2"
--> Ok
--> { year = 2021
--> , month = 8
--> , day = 3
--> , hour = 6
--> , minute = 39
--> , second = 55
--> , millis = 356
--> }
fromPosix : Time.Posix -> String
Convert a posix time to a @da encoded string.
import Time
Time.millisToPosix 1627948800000 |> fromPosix
--> "~2021.8.3"
toPosix : String -> Result (List Parser.DeadEnd) Time.Posix
Try to convert a @da encoded string to a posix time, failing on improperly formatted strings.
import Time
toPosix "~2021.8.3..8.25.00"
--> Ok (Time.millisToPosix 1627979100000)
parseDateRecord : Parser DateRecord
Parses a @da encoded string into a DateRecord.
parsePosix : Parser Time.Posix
Parses a @da encoded string into a posix time.