module Network.S3.Time ( getExpirationTimeStamp , utcTimeToEpochTime ) where import Control.Applicative ((<$>)) import Data.ByteString.UTF8 (ByteString, fromString) import Data.Time (UTCTime (..), getCurrentTime) import Data.Time.Clock.POSIX (utcTimeToPOSIXSeconds) getExpirationTimeStamp :: Integer -> IO ByteString getExpirationTimeStamp secs = fromString . show . (+secs) . utcTimeToEpochTime <$> getCurrentTime utcTimeToEpochTime :: UTCTime -> Integer utcTimeToEpochTime = fromIntegral . toSecs where toSecs :: UTCTime -> Int toSecs = round . utcTimeToPOSIXSeconds