haskellで日時を扱う。

現在の日付を得る

Prelude Data.Time>  getCurrentTime >>= return.utctDay >>= print
2010-09-09
Prelude Data.Time>  getCurrentTime >>= return.toGregorian.utctDay >>= print
(2010,9,9)

5秒後の時間を得る

Prelude Data.Time.Clock> getCurrentTime >>= print >> getCurrentTime >>= \t -> return(addUTCTime (5::NominalDiffTime) t) >>= print
2010-09-09 03:05:09.408904 UTC
2010-09-09 03:05:14.409195 UTC


doでかくと

Prelude Data.Time.Clock> do {now<-getCurrentTime; print now; print $ addUTCTime (5::NominalDiffTime) now}
2010-09-09 03:03:50.452735 UTC
2010-09-09 03:03:55.452735 UTC

関数化

Prelude Data.Time.Clock> let secondLater x = getCurrentTime >>= \n -> return(addUTCTime (x::NominalDiffTime) n) in secondLater 5
2010-09-09 03:13:21.380543 UTC