diff --git a/src/Text/Format/Class.hs b/src/Text/Format/Class.hs
--- a/src/Text/Format/Class.hs
+++ b/src/Text/Format/Class.hs
@@ -80,7 +80,9 @@
   keyOf _ = Index (-1)
 
 instance {-# OVERLAPPABLE #-} FormatTime t => FormatArg t where
-  formatArg x _ fmt = formatTime defaultTimeLocale (fmtSpecs fmt) x
+  formatArg x _ fmt = formatTime defaultTimeLocale specs x
+    where
+      specs = case fmtSpecs fmt of "" -> "%Y-%m-%dT%H:%M:%S"; cs -> cs
 
 instance {-# OVERLAPPABLE #-} FormatArg a => FormatArg [a] where
   formatArg x (Nest _ k@(Index i)) = formatArg (x !! i) k
diff --git a/test/FormatSpec.hs b/test/FormatSpec.hs
--- a/test/FormatSpec.hs
+++ b/test/FormatSpec.hs
@@ -97,7 +97,7 @@
                                      else []
     in all (== '_') $ fn (format "{:_d}" (i :: Integer))
   prop "precision" $ \(i, NonNegative p) ->
-    let fmt = fromString $ "{:." ++ (show p) ++ "}"
+    let fmt = fromString $ "{:." ++ (show p) ++ "f}"
     in format fmt i == showFFloat (Just p) (i :: Double) ""
 
 
diff --git a/vformat.cabal b/vformat.cabal
--- a/vformat.cabal
+++ b/vformat.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: a5998fdb18cdaeb90e83607dfb209d143c8629ae337ff193558bb657de6b47cf
+-- hash: 1a0a896bcbb88748b1be2651144fc84ba8ab7f7550996444ff48d3df402b9165
 
 name:           vformat
-version:        0.9.0.0
+version:        0.9.1.0
 synopsis:       A Python str.format() like formatter
 description:    Please see the http://hackage.haskell.org/package/vformat
 category:       Text, Format
