如何使用 Haskell 中的时间库创建 UTCTime 值?
How do I create a UTCTime value using the time library in Haskell?
我有年、月、日、小时和分钟值(它们都是 Int 类型)- 我如何将它们转换为 UTCTime
?
与 一样,但使用 time
库。
import Data.Time.Calendar
import Data.Time
example :: UTCTime
example = UTCTime (fromGregorian 2018 10 27) (secondsToDiffTime 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)
我有年、月、日、小时和分钟值(它们都是 Int 类型)- 我如何将它们转换为 UTCTime
?
与 time
库。
import Data.Time.Calendar
import Data.Time
example :: UTCTime
example = UTCTime (fromGregorian 2018 10 27) (secondsToDiffTime 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)