unix-compat-0.2: src/System/PosixCompat/Time.hs
{-|
This module makes the operations exported by @System.Posix.Time@
available on all platforms. On POSIX systems it re-exports operations from
@System.Posix.Time@, on other platforms it emulates the operations as far
as possible.
-}
module System.PosixCompat.Time (
epochTime,
) where
#ifdef UNIX_IMPL
import System.Posix.Time
#else
import Control.Monad (liftM)
import System.Posix.Types (EpochTime)
import System.Time (ClockTime(..), getClockTime)
-- | The portable version of @epochTime@ calls 'getClockTime' to obtain the
-- number of seconds that have elapsed since the epoch (Jan 01 00:00:00 GMT
-- 1970).
epochTime :: IO EpochTime
epochTime = liftM clockTimeToEpochTime getClockTime
clockTimeToEpochTime :: ClockTime -> EpochTime
clockTimeToEpochTime (TOD s _) = fromInteger s
#endif