如何使用Haskell中的时间库创建UTCTime值?

时间:2018-10-27 15:29:36

标签: haskell haskell-time

我有一个年,月,日,小时和分钟值(它们都是Int类型)-如何将它们转换为UTCTime

How do I create a UTCTime from Int values, using the thyme library in Haskell?一样,但是使用time库。

2 个答案:

答案 0 :(得分:0)

import Data.Time.Calendar
import Data.Time

example :: UTCTime
example = UTCTime (fromGregorian 2018 10 27) (secondsToDiffTime 0)

答案 1 :(得分:0)

将其放在此处以供参考。检查两个方法parseTimeM和parseTimeOnError。两者都可以从here获得。 parseTimeM是安全版本,而parseTimeOnError不安全(引发异常)。

我以前使用过parseTimeOnError。您将需要将给定的信息转换为特定格式的字符串,并以格式和字符串作为输入来调用函数。

import Data.Time
import Data.Time.Format
import Data.Time.Clock
import Text.Printf

getDateString :: Int -> Int -> Int -> Int -> Int -> String
getDateString year month day hour minute = (printf "%02d" month) ++ "/" ++ (printf "%02d" day) ++ "/" ++ show year ++ " " ++ show hour ++ ":" ++ show minute

getTheUTCDate :: String -> UTCTime 
getTheUTCDate strDate = parseTimeOrError True defaultTimeLocale "%D %R" strDate

main = do 
          let p = getDateString 12 7 6 23 45 
          print ("Hello ", " ", getTheUTCDate p)