import Data.Time.Clock.POSIX (utcTimeToPOSIXSeconds) import Data.Time.Calendar (fromGregorian) import Data.Time (UTCTime(..), secondsToDiffTime) -- Convert DateTime to Unix timestamp (2020 date) dateTime :: UTCTime dateTime = UTCTime (fromGregorian 2020 5 15) (secondsToDiffTime $ 8 * 3600 + 30 * 60 + 45) unixTimestamp :: Integer unixTimestamp = round (utcTimeToPOSIXSeconds dateTime) main :: IO () main = putStrLn $ "Unix Timestamp: " ++ show unixTimestamp
UTCTime
utcTimeToPOSIXSeconds
Unix Timestamp: 1652603445
getCurrentTime
posixSecondsToUTCTime
posixSecondsToUTCTime 1652602245
utcTimeToPOSIXSeconds dateTime
fromGregorian
Day
fromGregorian 2022 5 15
DiffTime
UTCTime (fromGregorian 2022 5 15) (secondsToDiffTime 30645)
formatTime
formatTime defaultTimeLocale "%Y-%m-%d %H:%M:%S" dateTime
addUTCTime
addUTCTime 3600 dateTime
diffUTCTime
diffUTCTime time1 time2
secondsToDiffTime
secondsToDiffTime 30645
getZonedTime
ZonedTime