-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | date time -- -- date time functions to pico precision @package hora @version 1.0 module Data.Time.Hora.Type.YmdHms data YmdHms YmdHms :: Int -> Int -> Int -> Int -> Int -> Int -> YmdHms [year] :: YmdHms -> Int [month] :: YmdHms -> Int [day] :: YmdHms -> Int [hour] :: YmdHms -> Int [minute] :: YmdHms -> Int [second] :: YmdHms -> Int instance GHC.Classes.Eq Data.Time.Hora.Type.YmdHms.YmdHms instance GHC.Show.Show Data.Time.Hora.Type.YmdHms.YmdHms instance GHC.Classes.Ord Data.Time.Hora.Type.YmdHms.YmdHms module Data.Time.Hora.Type.DmyHm -- | Date, Time w/out second data DmyHm a DmyHm :: a -> a -> a -> a -> a -> DmyHm a [day] :: DmyHm a -> a [month] :: DmyHm a -> a [year] :: DmyHm a -> a [hour] :: DmyHm a -> a [minute] :: DmyHm a -> a -- |
-- (DmyHm {day = "12", month = "12", year = "2016", hour = "17", minute = "32"},"59.727280400000")
--
type DmyHmp' = (DmyHm String, String)
-- |
-- DmyHmp (DmyHm {day = 12, month = 12, year = 2016, hour = 17, minute = 32},59.727482058000)
--
newtype DmyHmp
DmyHmp :: (DmyHm Int, Pico) -> DmyHmp
-- | convert from more precise to more common type
pico2second :: DmyHmp -> YmdHms
instance GHC.Show.Show Data.Time.Hora.Type.DmyHm.DmyHmp
instance GHC.Classes.Eq Data.Time.Hora.Type.DmyHm.DmyHmp
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Time.Hora.Type.DmyHm.DmyHm a)
instance GHC.Show.Show (Data.Time.Hora.Type.DmyHm.DmyHm GHC.Types.Int)
instance GHC.Show.Show (Data.Time.Hora.Type.DmyHm.DmyHm GHC.Base.String)
instance GHC.Base.Functor Data.Time.Hora.Type.DmyHm.DmyHm
instance GHC.Classes.Ord Data.Time.Hora.Type.DmyHm.DmyHmp
instance GHC.Classes.Ord (Data.Time.Hora.Type.DmyHm.DmyHm GHC.Types.Int)
module Data.Time.Hora.Type.Time
data TimeSpan a
Sec :: a -> TimeSpan a
Pico :: a -> TimeSpan a
Milli :: a -> TimeSpan a
data Tz a
Tz :: TimeZone -> a -> Tz a
-- | constraint
type TwoInt a b = (Integral a, Integral b)
instance GHC.Show.Show a => GHC.Show.Show (Data.Time.Hora.Type.Time.Tz a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Time.Hora.Type.Time.TimeSpan a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Time.Hora.Type.Time.TimeSpan a)
instance GHC.Show.Show a => GHC.Show.Show (Data.Time.Hora.Type.Time.TimeSpan a)
module Data.Time.Hora.Format
-- | yyyymmdd
ymd :: TimeZone -> UTCTime -> Tz String
-- | format UTCTime just as you need it. uses defaultTimeLocale
--
--
-- import Text.Regex.Do.Replace.Template
-- import Prelude hiding ((<),(>))
-- ...
--
-- it "formatUTCTime" $ do
-- t1 <- getCurrentTime
-- let p1@DmyHm{..} = partFormats
-- traceIO $ formatUTCTime (("{day}/{month} {hour}:{minute}") <
-- [("day",day),("month",month),("hour",hour),("minute",minute)])
-- t1
--
-- 12/12 18:39
--
formatUTCTime :: String -> UTCTime -> String
-- | %T%Q
hmsFraction :: String
-- | %T %Q
hmsFraction' :: String
-- | %F %T
ymdHms :: String
-- | %S.%-q
--
-- second.pico
spicoFormat :: String
-- | some formats no padding
--
-- see formatTime for full measure
--
-- -- day %-d -- month %-m -- year %Y -- hour %-H -- minute %-M --partFormats :: DmyHm String module Data.Time.Hora.Parse -- | specified time in specified zone, to DmyHmP parse' :: TimeZone -> UTCTime -> Tz DmyHmp -- | from specified UTCTime class Parse out parse :: Parse out => UTCTime -> out instance Data.Time.Hora.Parse.Parse Data.Time.Hora.Type.DmyHm.DmyHmp instance Data.Time.Hora.Parse.Parse Data.Time.Hora.Type.DmyHm.DmyHmp' module Data.Time.Hora.Timestamp -- | time with Pico in current timezone -- --
-- >>> now
-- Tz CET (DmyHm {day = 12, month = 12, year = 2016, hour = 19, minute = 33},15.546562180000)
--
now :: IO (Tz DmyHmp)
-- | timestamp
--
-- second.fraction. UTC
--
-- -- >>> t -- 14:41:29.785834836 --t :: IO String -- | timestamp -- -- second.fraction. UTC -- --
-- >>> t' -- 14:41:29 .785834836 --t' :: IO String -- | date, time (to second) UTC -- --
-- >>> dt -- 2016-12-12 14:43:13 --dt :: IO String -- | date stamp yyyymmdd -- -- local timezone -- --
-- >>> d -- Tz CET "20161212" --d :: IO (Tz String) module Data.Time.Hora.Convert -- | pico in 1 second picoSec :: Integral a => a -- | pico in 1 milli picoMs :: Integral a => a -- | milli in 1 sec msSec :: Integral a => a -- |
-- >>> toPico (Milli 1) -- 1000000000 --toPico :: TwoInt a b => TimeSpan a -> b -- |
-- >>> toMilli (Sec 1) -- 1000 --toMilli :: TwoInt a b => TimeSpan a -> b toSec :: TwoInt a b => TimeSpan a -> b toDiffTime :: Integral a => TimeSpan a -> DiffTime nominalDiff :: Integral a => TimeSpan a -> NominalDiffTime module Data.Time.Hora.Future -- | getCurrentTime +/- offset -- -- from unit test: -- --
-- getCurrentTime -- futureUTCTime $ Milli 100 -- futureUTCTime $ Sec 3 -- -- 2016-12-12 15:34:03.138798524 UTC -- 2016-12-12 15:34:03.23893359 UTC -- 2016-12-12 15:34:06.138978355 UTC --futureUTCTime :: Integral a => TimeSpan a -> IO UTCTime -- | time diff in milli timeDiffMs :: UTCTime -> UTCTime -> Int