module Bitcoin.Misc.UnixTime where
import Data.Word
import "time" Data.Time
import "time" Data.Time.Clock.POSIX
newtype UnixTimeStamp = UnixTimeStamp { fromUnixTimeStamp :: Word32 } deriving (Eq,Ord)
instance Show UnixTimeStamp where
show ts = "UnixTimeStamp<" ++ isoDateStr ts ++ ">"
unixTimeStampToUTC :: UnixTimeStamp -> UTCTime
unixTimeStampToUTC (UnixTimeStamp unixstamp) = utctime where
ndifftime = fromIntegral unixstamp :: POSIXTime
utctime = posixSecondsToUTCTime ndifftime
isoDateStr :: UnixTimeStamp -> String
isoDateStr unixstamp = formatTime locale "%Y-%m-%d %H:%M:%S" utctime where
utctime = unixTimeStampToUTC unixstamp
locale = defaultTimeLocale