現在の日時を取得するコードは、つぎのようになります。
--- time
import Data.Time (getCurrentTime)
main :: IO ()
main = do
ct <- getCurrentTime
print ct
-- 2017-04-03 04:28:31.845529 UTC
ここで使われている関数getCurrentTimeは、つぎのような型を持ちます。
getCurrentTime :: IO UTCTime
現在の時刻をUTCで取得します。 型UTCTimeは、つぎのようなフィールドを持ちます。
data UTCTime = UTCTime {
utctDay :: Day,
utctDayTime :: DiffTime }
システムに設定されたタイムゾーンにおける現在時刻を取得するコードは、 つぎのようになります。
-- time
import Data.Time.LocalTime
main :: IO ()
main = do
zt <- getZonedTime
print zt
-- 2017-04-05 10:05:52.483393209 JST
関数getZonedTimeは、つぎのような型を持ちます。
getZonedTime :: IO ZonedTime
型ZonedTimeは、つぎのようなフィールドを持ちます。
data ZonedTime = ZonedTime {
zonedTimeToLocalTime :: LocalTime
zonedTimeZone :: TimeZone }
型LocalTimeは、つぎのようになります。
data LocalTime = LocalTime {
localDay :: Day
localTimeOfDay :: TimeOfDay }
UTC時刻とローカルな時刻の変換は、(ここにリンクを置く)を、 時刻の差分をとるには、(ここにリンクを置く)を参照してください。