module System.Log.FastLogger.Date (
ZonedDate
, zonedDateCacheConf
) where
import Data.ByteString
import System.Date.Cache
#if WINDOWS
import qualified Data.ByteString.Char8 as BS
import Data.Time
import System.Locale
#else
import Data.UnixTime
import System.Posix (EpochTime, epochTime)
#endif
type ZonedDate = ByteString
#if WINDOWS
zonedDateCacheConf :: DateCacheConf UTCTime
zonedDateCacheConf = DateCacheConf {
getTime = getCurrentTime
, formatDate = \ut -> do
zt <- utcToLocalZonedTime ut
return $ BS.pack $ formatTime defaultTimeLocale "%d/%b/%Y:%T %z" zt
}
#else
zonedDateCacheConf :: DateCacheConf EpochTime
zonedDateCacheConf = DateCacheConf {
getTime = epochTime
, formatDate = formatUnixTime "%d/%b/%Y:%T %z" . fromEpochTime
}
#endif