{-# LANGUAGE FlexibleContexts #-}
module Data.HodaTime.Pattern.Instant
(
pInstant
,pInstantNano
,instantPattern
)
where
import Data.HodaTime.Pattern.Internal (Pattern, dimapP, (<%), char)
import Data.HodaTime.Pattern.CalendarDateTime (ps, po)
import Data.HodaTime.Instant.Internal (Instant)
import Data.HodaTime.CalendarDateTime.Internal (CalendarDateTime, IsCalendarDateTime(..))
import Data.HodaTime.Calendar.Gregorian (Gregorian)
instantPattern
:: Pattern (CalendarDateTime Gregorian -> CalendarDateTime Gregorian) (CalendarDateTime Gregorian -> String) String
-> Pattern (Instant -> Instant) (Instant -> String) String
instantPattern :: Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
-> Pattern (Instant -> Instant) (Instant -> String) String
instantPattern = (Instant -> CalendarDateTime Gregorian)
-> (CalendarDateTime Gregorian -> Instant)
-> Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
-> Pattern (Instant -> Instant) (Instant -> String) String
forall t s.
(t -> s)
-> (s -> t)
-> Pattern (s -> s) (s -> String) String
-> Pattern (t -> t) (t -> String) String
dimapP Instant -> CalendarDateTime Gregorian
forall cal.
IsCalendarDateTime cal =>
Instant -> CalendarDateTime cal
fromAdjustedInstant CalendarDateTime Gregorian -> Instant
forall cal.
IsCalendarDateTime cal =>
CalendarDateTime cal -> Instant
toUnadjustedInstant
pInstant :: Pattern (Instant -> Instant) (Instant -> String) String
pInstant :: Pattern (Instant -> Instant) (Instant -> String) String
pInstant = Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
-> Pattern (Instant -> Instant) (Instant -> String) String
instantPattern (Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
forall dt.
(HasLocalTime dt, HasDate dt, Enum (MoY dt)) =>
Pattern (dt -> dt) (dt -> String) String
ps Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
-> Pattern Char String String
-> Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
forall a b r c. Pattern a b r -> Pattern c r r -> Pattern a b r
<% Char -> Pattern Char String String
char Char
'Z')
pInstantNano :: Pattern (Instant -> Instant) (Instant -> String) String
pInstantNano :: Pattern (Instant -> Instant) (Instant -> String) String
pInstantNano = Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
-> Pattern (Instant -> Instant) (Instant -> String) String
instantPattern (Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
forall dt.
(HasLocalTime dt, HasDate dt, Enum (MoY dt)) =>
Pattern (dt -> dt) (dt -> String) String
po Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
-> Pattern Char String String
-> Pattern
(CalendarDateTime Gregorian -> CalendarDateTime Gregorian)
(CalendarDateTime Gregorian -> String)
String
forall a b r c. Pattern a b r -> Pattern c r r -> Pattern a b r
<% Char -> Pattern Char String String
char Char
'Z')