DateTime and how to construct it
DateTime and how to construct it
DateTime
DateTime is exported by purescript-datetime
and represents a date/time value in the Gregorian calendar/UTC time zone.
data DateTime = DateTime Date Time
We can construct a DateTime value by simply passing a Date and a Time
to it.
myDateTime :: DateTime Date Time
myDateTime = DateTime myDate myTime
Instant
An Instant is a duration in milliseconds relative to the Unix epoch (1970-01-01 00:00:00 UTC).
The constructor is private, so to build one we can use:
instant :: Milliseconds -> Maybe Instant
-- e.g.
myInstant = instant $ Milliseconds 1000.0
-- > Just (Instant (Milliseconds 1000.0))
This function takes a Milliseconds value and tries to build an Instant.
The minimum acceptable value equates to the bottom
DateTime (if we pass negative values to go before the year 1970) and the maximum acceptable value equates to the top
DateTime.
If we already have a Date or a DateTime we can use:
fromDateTime :: DateTime -> Instant
fromDate :: Date -> Instant
fromDate uses the assumed time 00:00:00.
It’s also possible to convert back by using:
unInstant :: Instant -> Milliseconds
toDateTime :: Instant -> DateTime
-- e.g.
myDateTime = toDateTime <$> instant (Milliseconds 1000.0)
-- > Just (DateTime (Date (Year 1980) January (Day 1)) (Time (Hour 0)) (Minute 0) (Second 1) (Millisecond 0))