diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -10,3 +10,7 @@
 - Make generic instantiate FormatArg configurable
 - Expose standard formatters
 - Fix some issue and doc
+
+## V0.12.0
+- Add `defaultSpecs`
+- Remove `FormatTime` instance
diff --git a/src/Text/Format.hs b/src/Text/Format.hs
--- a/src/Text/Format.hs
+++ b/src/Text/Format.hs
@@ -43,6 +43,7 @@
   , formatWord
   , formatInteger
   , formatRealFloat
+  , defaultSpecs
     -- * Errors
   , ArgError(..)
   , errorArgKey
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
@@ -19,10 +19,10 @@
   , formatWord
   , formatInteger
   , formatRealFloat
+  , defaultSpecs
   ) where
 
 
-import           Control.Applicative
 import           Control.Monad.Catch
 import           Data.Char
 import           Data.Either
@@ -30,7 +30,6 @@
 import           Data.List           ((!!))
 import           Data.Map            hiding (map)
 import           Data.Maybe
-import           Data.Time.Format
 import           Data.Word
 import           GHC.Generics
 import           Numeric
@@ -127,6 +126,9 @@
   putStrLn $ format1 \"Book: {name}, Author: {author}, Price: {price:.2f}\" $
     Book \"Math\" \"nobody\" 99.99
 @
+
+Note: Since v0.12.0, 'FormatTime' instance has been remove,
+use [vformat-time](http://hackage.haskell.org/package/vformat-time) instead.
 -}
 class FormatArg a where
   formatArg :: a -> Formatter
@@ -193,13 +195,6 @@
 instance FormatArg Word64 where
   formatArg = formatWord
 
--- | Default specs is \"%Y-%m-%dT%H:%M:%S\", see 'formatTime'.
-instance {-# OVERLAPPABLE #-} FormatTime t => FormatArg t where
-  formatArg x k fmt =
-    let specs = fmtSpecs fmt <|> "%Y-%m-%dT%H:%M:%S"
-        x'    = formatTime defaultTimeLocale specs x
-    in formatArg x' k $ fmt{fmtSpecs=""}
-
 instance {-# OVERLAPPABLE #-} FormatArg a => FormatArg [a] where
   {-# SPECIALIZE instance FormatArg [Char] #-}
   formatArg = formatArgList
@@ -463,3 +458,10 @@
     showx "G" p x   = map toUpper <$> showx "g" p x
     showx "%" p x   = (++ "%") <$> (showx "f" p (x * 100))
     showx _ _ _     = throwM ArgFmtError
+
+
+{-| Use a default specs for the given formatter -}
+defaultSpecs :: String -> (a -> Formatter) -> a -> Formatter
+defaultSpecs specs f x k fmt
+  | fmtSpecs fmt == "" = f x k $ fmt {fmtSpecs = specs}
+  | otherwise = f x k fmt
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: 2036e677feacc5509914e6f6268eeb9a780e00ef9f609f19d4b52d21728b7fc6
+-- hash: 432cce1b2c70136bddd87b0256f57f890212a55aaa4f38b8b1ddb4fb4eb1d3dc
 
 name:           vformat
-version:        0.11.0.0
+version:        0.12.0.0
 synopsis:       A Python str.format() like formatter
 description:    Please see the http://hackage.haskell.org/package/vformat
 category:       Text, Format
@@ -42,7 +42,6 @@
       base >=4.7 && <5
     , containers >=0.5.9 && <1.0
     , exceptions >=0.8 && <1.0
-    , time >=1.4 && <2.0
   default-language: Haskell2010
 
 test-suite vformat-test
@@ -59,6 +58,5 @@
     , containers >=0.5.9 && <1.0
     , exceptions >=0.8 && <1.0
     , hspec >=2.1 && <3.0
-    , time >=1.4 && <2.0
     , vformat
   default-language: Haskell2010
