Haskellで現在時刻

import Time
import System.IO.Unsafe
import Control.Exception

showNow :: IO ()
showNow = getClockTime >>= toCalendarTime >>= (\d -> putStrLn (calendarTimeToString d))

stringNow :: String
stringNow = unsafePerformIO $ getClockTime >>= toCalendarTime >>= evaluate.calendarTimeToString

 あんまり直感的じゃないですね・・・。

Main> stringNow
"Fri Apr  8 07:15:08 \147\140\139\158 (\149W\143\128\142\158) 2005"
Main> showNow
Fri Apr  8 07:15:13 東京 (標準時) 2005

Main>

 文字列の表示だと文字化けするし。
 (Haskell処理系は、Hugs Version: Nov 2003)