diff --git a/Dixi/API.hs b/Dixi/API.hs
--- a/Dixi/API.hs
+++ b/Dixi/API.hs
@@ -15,6 +15,7 @@
 import Servant.API
 import Servant.HTML.Blaze
 
+import Dixi.Config
 import Dixi.Common
 import Dixi.Page
 import Dixi.PatchUtils
@@ -26,13 +27,14 @@
 (|:) :: a -> b -> a :| b
 (|:) = (:<|>)
 
-data PrettyPage = PP Key Version (Page Text)
-data RawPage    = RP Key Version (Page Text)
-data DiffPage   = DP Key Version Version (Page (Hunks Char))
-data History    = H Key [Page PatchSummary]
 
-data NewBody = NB Text (Maybe Text)
-data RevReq = DR Version Version (Maybe Text)
+data PrettyPage = PP Renders Key Version (Page Text)
+data RawPage    = RP Renders Key Version (Page Text)
+data DiffPage   = DP Renders Key Version Version (Page (Hunks Char))
+data History    = H  Renders Key [Page PatchSummary]
+
+data NewBody    = NB Text (Maybe Text)
+data RevReq     = DR Version Version (Maybe Text)
 
 type HistoryAPI  = Get '[HTML] History
                 :| Capture "version" Version :> VersionAPI
diff --git a/Dixi/Config.hs b/Dixi/Config.hs
--- a/Dixi/Config.hs
+++ b/Dixi/Config.hs
@@ -1,17 +1,46 @@
 {-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE RecordWildCards #-}
 
-module Dixi.Config where
+module Dixi.Config ( Config (Config, port, storage)
+                   , Renders (..)
+                   , defaultConfig
+                   , configToRenders
+                   ) where
 
 import Data.Aeson
+import Data.Maybe (fromMaybe)
+import Data.Monoid (Last (..))
+import Data.Time (UTCTime, formatTime)
+import Data.Time.Locale.Compat
+import Data.Time.Zones.All (toTZName, fromTZName, tzByLabel, TZLabel (..))
+import Data.Time.Zones (utcToLocalTimeTZ)
 import GHC.Generics
+import qualified Data.ByteString.Char8 as B
 
+data TimeConfig = TimeConfig
+            { timezone :: String
+            , format :: String
+            } deriving (Generic, Show)
 data Config = Config
             { port :: Int
             , storage :: FilePath
+            , time :: TimeConfig
             } deriving (Generic, Show)
 
 instance FromJSON Config where
 instance ToJSON   Config where
+instance FromJSON TimeConfig where
+instance ToJSON   TimeConfig where
 
+data Renders = Renders
+   { renderTime :: Last UTCTime -> String }
+
 defaultConfig :: Config
-defaultConfig = Config 8000 "state"
+defaultConfig = Config 8000 "state" (TimeConfig (B.unpack $ toTZName Etc__UTC) "%T, %F")
+
+
+configToRenders :: Config -> Renders
+configToRenders Config {..} = Renders {..}
+  where renderTime (Last Nothing) = "(never)"
+        renderTime (Last (Just t)) = let label = fromMaybe Etc__UTC (fromTZName $ B.pack $ timezone time)
+                                      in formatTime defaultTimeLocale (format time) $ utcToLocalTimeTZ (tzByLabel label) t
diff --git a/Dixi/Markup.hs b/Dixi/Markup.hs
--- a/Dixi/Markup.hs
+++ b/Dixi/Markup.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE DataKinds #-}
+{-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE ConstraintKinds #-}
@@ -16,11 +17,9 @@
 import Data.Monoid
 import Data.Patch    (Hunks, HunkStatus(..))
 import Data.Proxy
-import Data.Time
 import Data.Text     (Text)
 import Servant.API
 import Servant.HTML.Blaze
-import Data.Time.Locale.Compat
 import Text.Blaze
 import Text.Cassius
 import Text.Hamlet   (shamlet, Html)
@@ -31,6 +30,7 @@
 
 import Dixi.API
 import Dixi.Common
+import Dixi.Config
 import Dixi.Page
 import Dixi.Hamlet
 import Dixi.PatchUtils
@@ -38,9 +38,6 @@
 link :: (IsElem endpoint Dixi, HasLink endpoint) => Proxy endpoint -> MkLink endpoint
 link = safeLink dixi
 
-renderTime :: Last UTCTime -> String
-renderTime (Last Nothing) = "(never)"
-renderTime (Last (Just t)) = formatTime defaultTimeLocale "%T, %F (%Z)" t
 
 renderTitle :: Text -> Text
 renderTitle = T.pack . map (\c -> if c == '_' then ' ' else c) .  T.unpack
@@ -203,7 +200,7 @@
 
 
 instance ToMarkup DiffPage where
-  toMarkup (DP k v1 v2 p) = outerMatter (renderTitle k) $ [shamlet| 
+  toMarkup (DP (Renders {..}) k v1 v2 p) = outerMatter (renderTitle k) $ [shamlet| 
     #{pageHeader k vString}
     <div .body>
       <div>
@@ -233,8 +230,8 @@
       vString = ("diff " <> T.pack (show v1) <> " - " <> T.pack (show v2))
 
 instance ToMarkup History where
-  toMarkup (H k []) = outerMatter (renderTitle k) $ pageHeader k "history"
-  toMarkup (H k ps) = outerMatter (renderTitle k) $ [shamlet| 
+  toMarkup (H (Renders {..}) k []) = outerMatter (renderTitle k) $ pageHeader k "history"
+  toMarkup (H (Renders {..}) k ps) = outerMatter (renderTitle k) $ [shamlet| 
     #{pageHeader k "history"}
     <div .body>
      <form method="GET" action="/#{link diffUrl k}">
@@ -297,7 +294,7 @@
   toMarkup (ParsecError _ e) = [shamlet| <b> Parse Error: </b> #{show e} |]
 
 instance ToMarkup PrettyPage where
-  toMarkup (PP k v p)
+  toMarkup (PP (Renders {..}) k v p)
     = let
        com = p ^. comment . traverse
        tim = renderTime $ p ^. time
@@ -313,7 +310,7 @@
          |]
 
 instance ToMarkup RawPage where
-  toMarkup (RP k v p )
+  toMarkup (RP (Renders {..}) k v p )
     = let
        com = p ^. comment . traverse
        bod = p ^. body
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -37,28 +37,28 @@
 spacesToUScores :: T.Text -> T.Text
 spacesToUScores = T.pack . map (\x -> if x == ' ' then '_' else x) . T.unpack
 
-page :: AcidState Database -> Key -> Server PageAPI
-page db (spacesToUScores -> key)
+page :: AcidState Database -> Config -> Key -> Server PageAPI
+page db cfg (spacesToUScores -> key)
   =  latest
   |: history
   where
-    latest  =  latestQ PP |: latestQ RP
+    latest  =  latestQ (PP renders) |: latestQ (RP renders)
 
-    diffPages (Just v1) (Just v2) = do liftIO $ DP key v1 v2 <$> query db (GetDiff key (v1, v2))
+    diffPages (Just v1) (Just v2) = do liftIO $ DP renders key v1 v2 <$> query db (GetDiff key (v1, v2))
     diffPages _ _ = left err400
 
-    history =  do liftIO $ H key <$> query db (GetHistory key)
+    history =  do liftIO $ H renders key <$> query db (GetHistory key)
             |: version
             |: diffPages
             |: reversion
 
     reversion (DR v1 v2 com) = do
       _ <- liftIO (getCurrentTime >>= update db . Revert key (v1, v2) com)
-      latestQ PP
-    version v =  (versionQ PP v |: versionQ RP v)
+      latestQ (PP renders)
+    version v =  (versionQ (PP renders) v |: versionQ (RP renders) v)
               |: updateVersion v
     updateVersion v (NB t c) = do _ <- liftIO $ (getCurrentTime >>= update db . Amend key v t c)
-                                  latestQ PP
+                                  latestQ (PP renders)
 
     latestQ :: (Key -> Version -> Page Text -> a) -> EitherT ServantErr IO a
     latestQ pp = do liftIO $ uncurry (pp key) <$> query db (GetLatest key)
@@ -66,10 +66,12 @@
     versionQ :: (Key -> Version -> Page Text -> a) -> Version -> EitherT ServantErr IO a
     versionQ pp v = do liftIO $ pp key v <$> query db (GetVersion key v)
 
-server :: AcidState Database -> Server Dixi
-server db =  page db
-          |: page db "Main_Page"
+    renders = configToRenders cfg
 
+server :: AcidState Database -> Config -> Server Dixi
+server db cfg =  page db cfg
+              |: page db cfg "Main_Page"
+
 main :: IO ()
 main = getArgs >>= main'
  where
@@ -91,8 +93,8 @@
    main'' (Left e) = do
      hPutStrLn stderr $ Y.prettyPrintParseException e
      exitFailure
-   main'' (Right (Config {..})) = do
+   main'' (Right cfg@(Config {..})) = do
      db <- openLocalStateFrom storage emptyDB
      createCheckpoint db
      createArchive    db
-     run port $ serve dixi $ server db
+     run port $ serve dixi $ server db cfg
diff --git a/dixi.cabal b/dixi.cabal
--- a/dixi.cabal
+++ b/dixi.cabal
@@ -2,7 +2,7 @@
 -- see http://haskell.org/cabal/users-guide/
 
 name:                dixi
-version:             0.2.0.0
+version:             0.3.0.0
 synopsis:            A wiki implemented with a firm theoretical foundation.
 description:         This project is a simple wiki developed based on a
                      firm theoretical foundation.
@@ -67,6 +67,8 @@
                      , directory >= 1.0 && < 1.3
                      , time >= 1.4 && < 1.6
                      , time-locale-compat >= 0.1 && < 0.2
+                     , tz >= 0.0 && < 0.1
+                     , bytestring >= 0.10 && < 0.11
 
   -- hs-source-dirs:      
   default-language:    Haskell2010
