thyme-0.3.0.2: src/Data/Thyme/Clock.hs
-- | Types and functions for
-- <http://en.wikipedia.org/wiki/Coordinated_Universal_Time UTC> and
-- <http://en.wikipedia.org/wiki/Universal_Time#Versions UT1>.
--
-- If you don't care about leap seconds, keep to 'UTCTime' and
-- 'NominalDiffTime' for your clock calculations, and you'll be fine.
--
-- 'Num', 'Real', 'Fractional' and 'RealFrac' instances for 'DiffTime' and
-- 'NominalDiffTime' are only available by importing "Data.Thyme.Time". In
-- their stead are instances of 'Data.AdditiveGroup.AdditiveGroup',
-- 'Data.Basis.HasBasis' and 'Data.VectorSpace.VectorSpace', with
-- @'Data.VectorSpace.Scalar' 'DiffTime' ≡ 'Data.VectorSpace.Scalar'
-- 'NominalDiffTime' ≡ 'Rational'@.
--
-- Using 'fromSeconds' and 'toSeconds' to convert between 'TimeDiff's and
-- other numeric types. If you really must coerce between 'DiffTime' and
-- 'NominalDiffTime', @'view' ('microseconds' . 'from' 'microseconds')@.
--
-- 'UTCTime' is an instance of 'Data.AffineSpace.AffineSpace', with
-- @'Data.AffineSpace.Diff' 'UTCTime' ≡ 'NominalDiffTime'@.
--
-- 'UTCTime' is not Y294K-compliant. Please file a bug report on GitHub when
-- this becomes a problem.
module Data.Thyme.Clock (
-- * Universal Time
UniversalTime
, modJulianDate
-- * Absolute intervals
, DiffTime
-- * UTC
, UTCTime, UTCView (..)
, utcTime
, NominalDiffTime
, module Data.Thyme.Clock
-- * Time interval conversion
, TimeDiff (..)
, toSeconds, fromSeconds
, toSeconds', fromSeconds'
-- * Lenses
, _utctDay, _utctDayTime
) where
import Prelude
import Control.Lens
import Data.Thyme.Clock.Internal
import Data.Thyme.Clock.POSIX
-- | Get the current UTC time from the system clock.
getCurrentTime :: IO UTCTime
getCurrentTime = fmap (review posixTime) getPOSIXTime