diff --git a/src/System/Logger.hs b/src/System/Logger.hs
index fd3559c78504f283ffae4eab431a7a5a19fea45e..8debf5cd01a8702e4be9546f78f27e0132e6bfe3 100644
--- a/src/System/Logger.hs
+++ b/src/System/Logger.hs
@@ -40,6 +40,7 @@ module System.Logger
     , DateFormat (..)
     , Renderer
     , iso8601UTC
+    , iso8601
 
       -- * Core API
     , new
@@ -137,7 +138,10 @@ new s = liftIO $ do
     fn (Path p) = flip FL.newFileLoggerSet p
 
     mkGetDate Nothing  = return (return id)
-    mkGetDate (Just f) = return (msg . (display f) <$> getUnixTime)
+    mkGetDate (Just f) = do
+      t <- getUnixTime
+      bs <- display f t
+      return $ return $ msg bs
 
     mergeWith m e = Map.fromList (readNote "Invalid LOG_LEVEL_MAP" e) `Map.union` m
 
@@ -202,7 +206,7 @@ putMsg g l f = liftIO $ do
     let r = renderer  $ settings g
     let x = delimiter $ settings g
     let s = nameMsg   $ settings g
-    let df = fromMaybe iso8601UTC . format $ settings g
+    let df = fromMaybe iso8601 . format $ settings g
     let ll = logLevel $ settings g
     let m = render (r x df ll) (d . lmsg l . s . f)
     FL.pushLogStr (logger g) (FL.toLogStr m)
diff --git a/src/System/Logger/Class.hs b/src/System/Logger/Class.hs
index 7394c197c298750dd8577780b2cf7c8d262cd632..05709e44b3cd830cdc33c53fc6b78f01ae3641bc 100644
--- a/src/System/Logger/Class.hs
+++ b/src/System/Logger/Class.hs
@@ -30,6 +30,7 @@ module System.Logger.Class
 
     , L.DateFormat
     , L.iso8601UTC
+    , L.iso8601
 
     , L.Logger
     , L.new
@@ -67,4 +68,3 @@ info  = System.Logger.Class.log Info
 warn  = System.Logger.Class.log Warn
 err   = System.Logger.Class.log Error
 fatal = System.Logger.Class.log Fatal
-
diff --git a/src/System/Logger/Settings.hs b/src/System/Logger/Settings.hs
index 1b4587740f6d3f35404ba6b013f272da29e359c6..f7702d6b41ad7c34878eb6fe39f140963870625a 100644
--- a/src/System/Logger/Settings.hs
+++ b/src/System/Logger/Settings.hs
@@ -37,6 +37,7 @@ module System.Logger.Settings
     , readEnvironment
     , setReadEnvironment
     , iso8601UTC
+    , iso8601
     ) where
 
 import Data.String
@@ -172,15 +173,19 @@ data Output
     deriving (Eq, Ord, Show)
 
 newtype DateFormat = DateFormat
-    { display :: UnixTime -> ByteString
+    { display :: UnixTime -> IO ByteString
     }
 
 instance IsString DateFormat where
-    fromString = DateFormat . formatUnixTimeGMT . pack
+    fromString = DateFormat . formatUnixTime . pack
 
--- | ISO 8601 date-time format.
+-- | ISO 8601 date-time format, local time.
+iso8601 :: DateFormat
+iso8601 = "%Y-%0m-%0dT%0H:%0M:%0S"
+
+-- | ISO 8601 date-time format, UTC time.
 iso8601UTC :: DateFormat
-iso8601UTC = "%Y-%0m-%0dT%0H:%0M:%0SZ"
+iso8601UTC = DateFormat $ return . formatUnixTimeGMT (pack "%Y-%0m-%0dT%0H:%0M:%0SZ")
 
 -- | Take a custom separator, date format, log level of the event, and render
 -- a list of log fields or messages into a builder.
@@ -209,7 +214,7 @@ defSettings = Settings
     Debug
     Map.empty
     StdOut
-    (Just iso8601UTC)
+    (Just iso8601)
     ", "
     defaultBufSize
     Nothing
diff --git a/tinylog.cabal b/tinylog.cabal
index e8c25fddf0a692961c5b353ce883e846cf95c13d..12cee84e82fb9e60bb877cbee45a6ab68a8dcb45 100644
--- a/tinylog.cabal
+++ b/tinylog.cabal
@@ -1,5 +1,5 @@
 name:                 tinylog
-version:              0.15.1
+version:              0.15.2
 synopsis:             Simplistic logging using fast-logger.
 author:               Toralf Wittner
 maintainer:           Toralf Wittner <tw@dtex.org>