2014年4月7日月曜日

Haskellにおける時間の扱い

Haskellにおける時間の扱いを少し調べてみた。

現在時刻の取得

> import Data.Time.Clock
> getCurrentTime >>= putStrLn . show

時刻を整形された文字列に変換する

> import Data.Time.Format
> import System.Locale
> import Data.Time.Clock
> now <- getCurrentTime
> putStrLn $ formatTime defaultTimeLocale "%Y/%m/%d %H:%M:%S.%q" now

エポックタイムに変換する

> import Data.Time.Clock
> import Data.Time.Clock.POSIX
> now <- getCurrentTime
> putStrLn $ show $ utcTimeToPOSIXSeconds now

エポックタイムをUTCTimeに変換する

> import Data.Time.Clock
> import Data.Time.Clock.POSIX
> now <- getCurrentTime
> putStrLn $ show $ posixSecondsToUTCTime $ utcTimeToPOSIXSeconds now

文字列で表現されたエポックタイムをUTCTimeに変換する

> import Data.Time.Format
> import System.Locale
> import Data.Time.Clock
> putStrLn $ show (readTime defaultTimeLocale "%s%Q" "1396858888.828297" :: UTCTime)

整形された文字列表現された時刻をUTCTimeに変換する

> import Data.Time.Format
> import System.Locale
> import Data.Time.Clock
> putStrLn $ show (readTime defaultTimeLocale "%Y/%m/%d %H:%M:%S.%q" "2014/04/07 17:41:23.123456000000" :: UTCTime)

0 件のコメント:

コメントを投稿